关于GWT(Google Web Toolkit)的JSNI(JavaScript Native Interface),它确实支持回调。JSNI是一种将Java代码与JavaScript代码相互调用的机制,它允许你在GWT项目中直接编写和调用原生JavaScript代码。
通过使用JSNI,你可以在GWT项目中实现回调功能。以下是一个简单的示例:
public static native void registerCallback(MyCallback callback) /*-{
$wnd.myCallback = function(data) {
callback.@com.example.MyCallback::onDataReceived(Ljava/lang/String;)(data);
};
}-*/;
这里,MyCallback
是一个接口,其中包含一个名为onDataReceived
的方法,该方法接受一个字符串参数。
window.myCallback("Hello, world!");
MyCallback
接口,以便在回调被触发时执行相应的操作,如下所示:public class MyCallbackImpl implements MyCallback {
@Override
public void onDataReceived(String data) {
// 在这里处理回调数据
System.out.println("Received data: " + data);
}
}
通过这种方式,你可以在GWT项目中实现回调功能,并与JavaScript代码进行交互。
需要注意的是,在使用JSNI时,务必确保你的代码安全可靠,避免潜在的安全风险。同时,GWT已经不再是一个推荐的前端框架,你可以考虑使用其他现代的前端框架,如React、Angular或Vue.js。
领取专属 10元无门槛券
手把手带您无忧上云