JsInterop, упаковывающий свойство функции javascript
Я работаю с GWT 2.8, и я работаю над оболочкой для библиотеки JavaScript.
Одним из свойств класса JavaScript, который я пытаюсь обернуть, является функция. Я хотел бы, чтобы оболочка работала как можно ближе к нативному JavaScript. Как мне обернуть JsProperty, который является функцией javascript?
Подробности: класс javascript имеет свойство, которое является функцией, которая вызывается при срабатывании определенного события. Я хотел бы иметь возможность написать функцию labmda на Java и назначить ее этому свойству, которое затем будет запускаться в javascript.
1 ответ
Как сказал Адам (и объяснил более подробно в другом посте), вы можете предоставить @JsProperty с типом @JsFunction.
@JsType(isNative=true) public class Foo {
@JsFunction public static interface BarFn {
Object invoke(Object... args);
}
@JsProperty public BarFn bar;
}
Моя рекомендация изучить JsInterop - изучить другие проекты, такие как: обертка OpenLayers JsInterop, исходный код Elemental2 или изучить github. Elemental2 имеет весь API-интерфейс браузера, так что примеров здесь предостаточно, это действительно хорошее место для поиска примеров. Документация по JsInterop здесь.