gwt 2.8.0 jsinterop导出不工作
审查本文件: 导出java类并在javascript中保留其方法名应该与注释类一样简单,而且似乎不起作用 以下是步骤:gwt 2.8.0 jsinterop导出不工作,gwt,Gwt,审查本文件: 导出java类并在javascript中保留其方法名应该与注释类一样简单,而且似乎不起作用 以下是步骤: 在Eclipse中创建一个新的GWT Web应用程序。Project name=“jsinterop”,package=“com.example.jsinterop”,使用GWT2.8.0并取消选中App Engine,然后单击finish 创建新类 package com.example.jsinterop.client; 导入jsinterop.annotations.
package com.example.jsinterop.client;
导入jsinterop.annotations.*;
@JsType
公开课Foo{
公共int x;
公共智力;
公共整数和(){
返回x+y;
}
}
您可以将@JsType
与特定名称空间一起使用,例如:
@JsType(namespace = JsPackage.GLOBAL)
class Foo{...}
应该在JS中使用Foo,而不使用“com.example.jsinterop.client.
”
同意吗
并考虑使用<代码> @ jsFrad(iStase= true,命名空间=jSPACKAG.Global)< /C>作为JSNI的替换。< /P> < P>默认情况下不输出任何东西,您必须通过“<代码> > -GealEngJelopOutlook导出/<代码>到GWT(编译器或超级DEVMODE)。< /P>
请注意,GWT 2.x的下一个版本将允许您将要导出的包/类与当前的“全有或全无”相比列为白名单。try
$wnd.com.example.jsinterop.client.Foo()
@Tobika新错误消息:无法读取未定义的属性“example”,它应该是$wnd@com.example.jsinterop.client::Foo()
<代码>实例。@类名::方法。我想您可以省略实例,因为这是一个构造函数。@Adam我在JSNI块中遇到一个错误。@user1465576您是否将--generateJsInteropExports
传递给编译器和/或superdevmode?再次感谢。工作起来很有魅力!注意:从Eclipse编译时,必须在编译对话框中打开“高级”部分并添加选项。它的拼写是-generateJsInteropExports
(只有一个破折号)感谢@Vincent的反馈,我已经尝试过了,但正如Thomas Boyer所建议的,我需要将-generateJsInteropExports添加到我的GWT编译器选项中。