Does GWT JSNI support callbacks?
I am building a GWT app 开发者_Python百科that uses Web SQL Local Storage ( http://dev.w3.org/html5/webdatabase/ ). The problem is that the Web SQL API uses callback functions as arguments.
Is it possible to pass "Java" callbacks to JSNI?
Yes, it does:
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);
}-*/;
Two things to remember:
$entry()
reminds GWT to keep track of the code when using the debugger.var self = this
keeps the reference tothis
inside the function -- otherwisethis
will be the function itself...
精彩评论