1

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

已经有一个名为 GWT-Exporter 的不错的实用程序,它的作用正好相反(http://code.google.com/p/gwt-exporter/),我需要一种 GWT-Importer,它会自动生成 .java 包装器javascript函数。

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

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

4

1 回答 1

3

这听起来像是 JSNI 的工作。

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

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


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

  1. 将 JavaScript 库放在您的war目录中。(如果是外部托管,则不需要。)
  2. <script>通过向您的主机页面添加标签来包含脚本
  3. 创建实用程序类

 

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

于 2010-11-09T22:08:25.260 回答