Tag: jsni

GWT:如何在两个模块之间共享java对象(即:EventBus)

我正在构建一个大型应用程序,我想将它拆分为几个模块,如核心模块,用于初始化,用户管理等…,客户模块,生产模块等… 我想将它拆分为多个GWT模块(不使用GWT拆分技术)并共享一个EventBus,用于广播一些事件,如LoginEvent,LogoutEvent。 我不想使用代码分割技术,因为我想减少编译时间并仅重新编译我修改的模块。 这也允许通过在HTML主页中注释脚本标记来启用或禁用模块。 我使用JSNI编写了以下代码: CoreModule’s EntryPoint: private static SimpleEventBus eventBus = null; public void onModuleLoad() { export(); getEventBus().addHandler(MyEvent.TYPE, new MyEventHandler() { @Override public void onEvent(MyEvent myEvent) { Window.alert(myEvent.getMessage()); } }); } public static SimpleEventBus getEventBus() { if (eventBus == null) eventBus = new SimpleEventBus(); return eventBus; } public static native void export() /*-{ $wnd.getEventBus […]

从JSNI调用Java方法

我想从JSNI变量successHandler()调用Java方法test() successHandler() 。 但是,我得到错误 [ERROR] – Line 110: Missing qualifier on instance method ‘com.gw.myProject.client.presenter.payments.PaymentProgramPresenter.test’ 原始代码: public static native void purchase(String token) /*-{ var successHandler = function(status){ // Success handler return @com.gw.myProject.client.presenter.payments.PaymentProgramPresenter::test()(); } var failureHandler = function(status){ // Failure handler // $wnd.alert(‘testing’); } $doc.purchaseAction(token, successHandler, failureHandler); }-*/; public void test() { this.onHide(); }

将Java回调函数传递给JSNI方法?

我想将成功和失败的回调Java函数传递给JSNI方法。 这是我到目前为止所得到的,但它不起作用。 我该如何解决? package c; public class A { test(new Callback() { @Override public void onFailure(String reason) { Window.alert(“fail”); } @Override public void onSuccess(String result) { Window.alert(“suc”); } }); native void test(Callback callback) /*-{ var callback = $entry(function(event) { callback.@cACallback::onSuccess(Ljava/lang/String;)(“success!”); }); }-*/; }

GWT 2.x $入场function

找不到有关此function的任何开发人员信息。 我只知道建议用这个$entry函数将JSNI JavaScript调用包装到Java方法中。 我发现它捕获了exception,因此Java代码可以处理它们。 这一切都是吗?

如何从Javascript调用GWT java函数?

是否可以从Javascript调用Java(GWT)方法? 从文档中还不清楚。 此处的所有示例http://code.google.com/intl/ru/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html演示了如何从JSNI(非JS)函数调用java函数。 更新1 这是一个Java代码: public class Test_GoogleWeb_JSNI_02 implements EntryPoint { /** * This is the entry point method. */ public void onModuleLoad() { } public static void Callee() { Window.alert(“Callee”); } } 这是html中的调用者按钮示例: 这里有一些我尝试过但没有用过的function: function Test01() { @com.inthemoon.tests.client.Test_GoogleWeb_JSNI_02::Callee()(); } function Test02() { com.inthemoon.tests.client.Test_GoogleWeb_JSNI_02::Callee()(); } 更新2 以下工作。 Java准备: public void onModuleLoad() { Prepare(); } public […]