1

我正在使用 GWT 2.8,并且正在开发一个 javascript 库的包装器。

我试图包装的 javascript 类的属性之一是函数。我希望包装器尽可能地与本机 javascript 工作。如何包装作为 javascript 函数的 JsProperty?

详细信息:javascript 类有一个属性,该属性是一个在触发特定事件时调用的函数。我希望能够用 Java 编写一个 labmda 函数,并将其分配给这个属性,然后它将在 javascript 中运行。

4

1 回答 1

3

正如亚当所说(并在另一篇文章中更详细地解释),您可以使用 @JsFunction 类型公开 @JsProperty。

@JsType(isNative=true) public class Foo {
    @JsFunction public static interface BarFn {
        Object invoke(Object... args);
    }
    @JsProperty public BarFn bar;
}

我对学习 JsInterop 的建议是探索其他项目,例如:OpenLayers JsInterop 包装器Elemental2 源代码探索 github。Elemental2 拥有完整的浏览器 API,因此有很多示例,它是查找示例的好地方。JsInterop 文档在这里

于 2017-08-16T16:07:25.620 回答