bou*_*tun 1 javascript java gwt jsni
我试图从java方法获取返回的值,但它返回一些非常奇怪的东西:它返回我用javascript编写的方法本身.
这里是java方法的代码:
public String getNameToShow() {
return "Chart number 1";
}
Run Code Online (Sandbox Code Playgroud)
和javascript方法:
public native void drawJSChart(String divId, int a, String jsData) /*-{
try {
//First create a script where to paste the jsData
var scriptID = this.@myPackage.MyClass::getNameToShow();
console.log(scriptID);
//Some code
} catch (e) {
console.error(e.message);
}
}-*/;
Run Code Online (Sandbox Code Playgroud)
谢谢.
它返回js方法,因为你已经要求使用js方法.
从JSNI代码调用java方法应该如下所示:
var scriptID = this.@myPackage.MyClass::getNameToShow(*)(); //notice second pair of braces
Run Code Online (Sandbox Code Playgroud)
基本上从JSNI调用java方法,您需要放置两对大括号.首先定义方法参数类型(在我的例子中,我使用*它将匹配任何参数类型),第二个用于将参数传递给方法.