GWT JSNI是否支持回调?

时间:2010-07-28 20:11:16

标签: gwt jsni

我正在构建一个使用Web SQL Local Storage的GWT应用程序 http://dev.w3.org/html5/webdatabase/)。 问题是Web SQL API使用回调函数 参数。

是否可以将“Java”回调传递给JSNI?

1 个答案:

答案 0 :(得分:21)

是的,确实如此:

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);
}-*/;

要记住两件事:

  1. $entry()提醒GWT在使用调试器时跟踪代码。
  2. var self = this保留对函数内this的引用 - 否则this将是函数本身......