从手写JavaScript调用GWT方法

Dra*_*anS 3 javascript gwt jsni

我想从浏览器控制台执行一些js方法来调用gwt代码.对于前者

showMyWindow();

JS:

function showMyWindow() {
// call gwt code from here MyWindow::showMe()
}
Run Code Online (Sandbox Code Playgroud)

GWT:

class MyWindow extends Window {
  public static showMe {
    MyWindow wnd = new MyWindow();
    wnd.show();
  }
}
Run Code Online (Sandbox Code Playgroud)

怎么做?谢谢.

Col*_*rth 8

正如关于从手写Javascript调用GWT JavaJSNI文档中所述,您需要公开showMyWindow函数,以便可以调用其他javascript.在你想在JS中实际调用showMyWindow之前的某个时候,运行这样的函数.

public static native void exportShowMe() /*-{
  $wnd.showMyWindow = $entry(@my.package.client.MyWindow::showMe());
}-*/;
Run Code Online (Sandbox Code Playgroud)

调用之后,您将能够调用showMyWindow()常规JS并调用静态方法.

另外,您的showMe方法可能需要返回类型,在这种情况下,最有可能void.