Я пытаюсь реализовать API (SCORM API) с помощью GWT. Клиентский код ожидает объект 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?