【发布时间】:2010-07-28 20:11:16
【问题描述】:
我正在构建一个使用 Web SQL 本地存储 ( http://dev.w3.org/html5/webdatabase/)。 问题是 Web SQL API 使用回调函数作为 论据。
是否可以将“Java”回调传递给 JSNI?
【问题讨论】:
我正在构建一个使用 Web SQL 本地存储 ( http://dev.w3.org/html5/webdatabase/)。 问题是 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);
}-*/;
要记住两件事:
$entry() 提醒 GWT 在使用调试器时跟踪代码。var self = this 在函数内部保留对 this 的引用 -- 否则 this 将是函数本身...【讨论】: