有没有办法自动将Javascript库桥接到GWT?

时间:2010-11-09 21:36:01

标签: java javascript gwt jsni

我需要桥接一个相当程序化的Javascript库,该库由一些包含从GWT调用函数的.js文件组成。

已经有一个名为GWT-Exporter的很好的实用工具完全相反(http://code.google.com/p/gwt-exporter/),我需要一种自动生成的GWT-Importer。 javascript函数的java包装器。

我知道类型是一个问题,但如果所有返回类型都变成JavaScriptObject或原语,我会满意。

JSNI似乎是这样,但我想要一些自动创建类的东西,而不是通过JSNI手动绑定所有方法。

1 个答案:

答案 0 :(得分:3)

这听起来像是JSNI的工作。

http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html

如果您知道要调用哪些函数,则设置包含表示相关函数的静态方法的单个实用程序类相当容易。


假设您有一个JavaScript库,您希望将函数foo()bar(number)公开给您的GWT应用程序。您需要执行以下操作。

  1. 将JavaScript库放在war目录中。 (如果是外部托管,则不需要。)
  2. 通过向主页添加<script>标记来包含脚本
  3. 创建实用程序类
  4. public final class LibraryName {
    
        public static native int foo() /*-{
            $wnd.foo(); // Use $wnd instead of window in JSNI methods
        }-*/;
    
        public static native void bar(double number) /*-{
           $wnd.bar(number)
        }-*/;
    
    }
    

    有关JSNI的更深入的文章,请查看http://googlewebtoolkit.blogspot.com/2008/07/getting-to-really-know-gwt-part-1-jsni.html