我正在尝试使用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代码?