如何使用JSNI从外部JS调用?
例如:
//Some external JS code
...
this.onFeatureClick = function(event) {
...
var name = "Batman";
passToJava(name); //Invoke java method and pass String name
};
我在这里试过了:
public void onModuleLoad() {
...
nativeVariableName(); //Call native method
}
public static void passToJava(String name) {
System.out.println(name);
}
public native String nativeVariableName() /*-{
$wnd.passToJava = function(name) {
@com.google.myproject.webinterface.client.MyWebInterface::passToJava(Ljava/lang/String;)(name);
}; }-*/;
我甚至不知道来自JavaScript的调用是否有效。 感谢。
答案 0 :(得分:2)
这段代码很好用。我不知道你希望在哪里看到调用System.out.println的结果,但看起来你正在寻找错误的地方。用Window.alert替换System.out.println并亲自查看。如果它不起作用,则意味着错误在其他地方: