я в настоящее время обновление моего GWT проекта 2,7 к 2.8-beta1 и я пытаюсь реорганизовать плагин обертку Javascript из JSNI к JsInterop.Wrap простой плагин JavaScript с использованием JsInterop
Здесь обертке JSNI:
public class MyPlugin extends JavaScriptObject {
protected MyPlugin(){
}
public static native MyPlugin init(MyPluginConfig config) /*-{
return new $wnd.MyPlugin(config);
}-*/;
public final native void addItem(MyPluginItem item) /*-{
this.addItem(item);
}-*/;
public final native void setEnable(int itemIndex, boolean enable) /*-{
this.setEnable(itemIndex, enable);
}-*/;
}
Что я пробовал:
@JsType(namespace = JsPackage.GLOBAL, isNative = true)
public class MyPlugin {
public static native MyPlugin init(MyPluginConfig config);
public native void addItem(MyPluginItem item);
public native void setEnable(int itemIndex, boolean enable);
}
Проблема, я понятия не имею, как обернуть конструктор. В JsInterop doc
Уроженец класса @JsType может иметь только Общественные нативные методы, Общественные и неинициализированным поля, Пустой конструктор, Заключительных неместных методы, которые не отменяют любые другие методы,
Итак, это мой вопрос: Как обернуть плагин JavaScript, где в JS конструктор выглядит var myPlugin = MyPlugin({option1 : value1, option2 : value2,...});
в JsInterop?
Спасибо за помощь :)
Вы можете поделиться своей структурой кода MyPluginConfig? Я пытаюсь передать параметры моей обертке, но ее нарушение. – xybrek
Привет, вы можете поделиться? – xybrek
@xybrek. должен работать: ' @JsType (isNative = true, namespace = JsPackage.GLOBAL) public class MyPluginConfig { public String option1; public int option2; } ' ' MyPluginConfig config = new MyPluginConfig(); config.option1 = "некоторая строка опции"; config.option2 = 101; MyPlugin plugin = new MyPlugin (config); ' – user3233853