如何从 Javascript 调用 Java 方法?我尝试了以下
http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html#calling
但它不起作用。我无法将 JS 放入 Java 文件,因为该库使用回调。在我的 App.html 文件中:
function pickerCallback(data) {
var doc = data[google.picker.Response.DOCUMENTS][0];
var name= doc[google.picker.Document.NAME];
var fileId = data.docs[0].id;
// set the path text field
//[instance-expr.]@class-name::field-name
//[instance-expr.]@class-name::method-name(param-signature)(arguments)
// Call static method
//@com.onix.sdm.client.SDM_Mailer::setSelectedFolder(Ljava/lang/String;Ljava/lang/String;)(name, fileId);
$entry(@com.onix.sdm.client.SDM_Mailer::setSelectedFolder(name, fileId));
}
在 SDM_Mailer.java 中:
private static void setSelectedFolder(String folder, String id) {
SDM_Mailer myThis = SDM_Mailer.getInstance();
myThis.textFolder.setText(folder);
myThis.folderId = id;
}
当我加载应用程序时,在浏览器控制台中出现此错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
在这条线上:
$entry(@com.onix.sdm.client.SDM_Mailer::setSelectedFolder(name, fileId));
我还尝试了在那之前的那一行(暂时评论),这也给出了同样的错误。