我尝试从java方法
中的另一个javascript方法调用javascript方法这是我的代码:
public void print(){
Excec();
}
native String flipName(String tst) /*-{
// ...implemented with JavaScript
alert(tst);
}-*/;
native String Excec() /*-{
alert("exe");
flipName("1");
alert("exe1");
}-*/;
当我运行应用程序时,它显示错误:
Excec()([]): flipName is not defined
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:249)
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576)
答案 0 :(得分:2)
这必须与在JSNI方法中调用Java方法的方式大致相同。
您必须指定要调用的方法的完全限定名称,并且还必须指定参数的类型。
可在此处找到更多信息:http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html
在实践中,这将起作用(将be.knarf.gwt.client.Example替换为您的类的正确包名和类名):
private native void flipName(String tst)
/*-{
alert(tst);
}-*/;
private native void excec()
/*-{
alert("exe");
this.@be.knarf.gwt.client.Example::flipName(Ljava/lang/String;)("hi");
alert("exe1");
}-*/;