概要
- 次のようなGWTメソッドがあります。
private void handleError()
- 次のように呼ばれるJSNIJavascript関数があります。
private native void registerErrorHandler()
- ネイティブjavascript関数は、サードパーティのJavascriptライブラリから別の関数を呼び出します。
foo.attachEvent("EventName", handlerReference);
機能性
GWTメソッドを関数パラメーターとして関数に渡す必要がありますfoo.attachEvent()
。いくつかのアプローチを試しました。
foo.attachEvent("Error", registerErrorHandler);
-> TypeMismatchException
foo.attachEvent("Error", this.@package.foo::registerErrorHandler());
-> TypeMismatchException
var handler = this.@package.foo::registerErrorHandler()();
foo.attachEvent("Error", handler);
-> TypeMismatchException
プレーンJavascript
これをプレーンなJavascriptで書くと、機能します。
function handleError() {
alert("Error");
}
function registerErrorHandler() {
var event = "Error";
var handler = handleError;
foo.attachEvent (event, handler);
}
どうすればそれをGWTに実装できますか?Javascript-Javaオブジェクト変換を完全に理解するのに多くの問題があります。handleError
関数参照をとして理解していますJavaScriptObject
が、その情報で機能させることができません。