19

Web SQL ローカル ストレージ ( http://dev.w3.org/html5/webdatabase/ )を使用する GWT アプリを構築しています 。問題は、Web SQL API がコールバック関数を引数として使用することです。

「Java」コールバックを JSNI に渡すことは可能ですか?

4

1 に答える 1

22

はい、そうです:

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つのこと:

  1. $entry()デバッガーの使用時にコードを追跡するよう GWT に通知します。
  2. var self = this関数内への参照を保持しthisます-それ以外の場合thisは関数自体になります...
于 2010-07-28T20:23:53.857 に答える