【问题标题】:Is there any way to automatically bridge a Javascript library to GWT?有没有办法自动将 Javascript 库桥接到 GWT?
【发布时间】:2010-11-09 21:36:00
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java javascript gwt jsni


    【解决方案1】:

    这听起来像是 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

    【讨论】:

    • 非常感谢您在示例中付出的努力。当然 JSNI 是一种方式,但我需要调用的库 (WebGLU) 有几十个方法,我需要手动绑定。我正在寻找某种可以自动化该过程的工具。
    • 更新您的问题可能是值得的。是否有一个全局 WebGLU 对象(如带有 JQuery 的 $)?否则,函数是否绑定到 window 对象?您可以越具体,可以提供的解决方案就越好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2023-02-10
    • 2015-03-29
    • 2013-11-20
    相关资源
    最近更新 更多