Web SQL ローカル ストレージ ( http://dev.w3.org/html5/webdatabase/ )を使用する GWT アプリを構築しています 。問題は、Web SQL API がコールバック関数を引数として使用することです。
「Java」コールバックを JSNI に渡すことは可能ですか?
Web SQL ローカル ストレージ ( http://dev.w3.org/html5/webdatabase/ )を使用する GWT アプリを構築しています 。問題は、Web SQL API がコールバック関数を引数として使用することです。
「Java」コールバックを JSNI に渡すことは可能ですか?
はい、そうです:
private static native void doThingWithCallback() /*-{
var self = this;
var callbackFn = $entry(function(val) {
self.@com.your.package.AClass.aMethod(Ljava/lang/String;)(val);
});
$wnd.someApiThatTakesACallback(callbackFn);
}-*/;
覚えておくべき2つのこと:
$entry()
デバッガーの使用時にコードを追跡するよう GWT に通知します。var self = this
関数内への参照を保持しthis
ます-それ以外の場合this
は関数自体になります...