JSNI - 从另一个本机方法调用本机方法

时间:2014-03-21 11:11:47

标签: gwt jsni

如何在按钮单击本机方法时调用另一个本机?我们可以通过按钮单击

从单个本机方法调用多个本机方法

1 个答案:

答案 0 :(得分:2)

是的,你可以做到。

示例代码:

public void onModuleLoad() {
    exportSayHello();

    Button btn = new Button("Click");
    btn.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            buttonClicked("vartika");
        }
    });

    RootPanel.get().add(btn);
}

public static native void exportSayHello() /*-{
    $wnd.sayHelloFunction = $entry(@com.gwt.test.client.GWTTestProject::sayHello(Ljava/lang/String;));
}-*/;

public static native void buttonClicked(String value)/*-{
    $wnd.sayHelloFunction(value);
}-*/;

public static native void sayHello(String value)/*-{
    $wnd.alert("Hello " + value);
}-*/;

要遵循的步骤:

  • 使用sayHello()
  • 将方法JSNI导出到JavaScript
  • 现在使用导出到buttonClicked()的相同名称sayHelloFunction从本机方法JavaScript调用它。

详细了解GWT JSNI