1

我有以下代码:

public static void show(String value){
   Window.alert("From Java");
   invokeMethod(); //Does not get called
}  

public static native void invokeMethod() /*-{ 
    alert("From JSNI");
}-*/; 

我想从 Java 方法调用 JSNI 方法,但是invokeMethod()从来没有被调用...我找不到太多从 Java 调用 JSNI 方法的用例。

为什么上面的代码不起作用?

4

1 回答 1

1

首先,正如 Colin Alworth 所说,您需要将代码更改为 $wnd.alert("From JSNI"); 如果你想调用除了 alert() 之外的另一个 JS 函数,你应该在你的 html 页面中写你的函数体。您将在此处找到所需的所有信息

所以你的代码应该是这样的:

public static void show(String value){
   Window.alert("From Java");
   invokeMethod(); 
}  

public static native void invokeMethod() /*-{ 
    $wnd.alert("From JSNI"); //Added "$wnd."
}-*/; 
于 2012-05-31T09:52:21.790 回答