GWT を使用して API (SCORM API) を実装しようとしています。クライアント コードは、Initialize()、getLastError() などのメソッドを持つ API オブジェクトを想定しています...
この 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;
}-*/;
}
したがって、この文脈では、私の質問は次のとおりです。
window.API_1484_11.Initialize()
Java gwt コードに到達するための JavaScript 呼び出し (例: ) を取得するにはどうすればよいですか?