我正在尝试使用 GWT 实现 API(SCORM API)。客户端代码需要一个 API 对象,其中包含 Initialize()、getLastError() 等方法......
我尝试将此 api 实现为 Java 对象,但我看到编译的名称已更改,客户端代码无法直接使用。
我看到 gwt-exporter 可以做到这一点(http://code.google.com/p/gwt-exporter/),但我想知道如何使用纯 gwt 和 jsni 来做到这一点。
由于 API 应该是一个对象,名为 API_1484_11 附加到窗口对象,而不是函数,所以我不知道如何使用 $entry() 习语。
这是我当前的失败代码:
public final class SCORMApi {
protected SCORMApi() {}
public void Initialize(){
GWT.log("** INITIALIZE CALLED **");
}
public static void create(){
bind(new SCORMApi());
}
public static native void bind(SCORMApi api) /*-{
$wnd.API_1484_11 = api;
}-*/;
}
所以,在这种情况下,我的问题是:
我怎样才能获得 javascript 调用(例如window.API_1484_11.Initialize()
)来访问我的 java gwt 代码?