在我的项目中,我有一个显示在 JavaFx WebView 中的 HTML 文档。我有一个应该调用 Java 方法 getData 的 Javascript 函数(目前它只打印传递的变量,以便我可以确认数据正在从 WebView 传回 Java 应用程序):
public void getData(String s){
System.out.println(s);
}
这就是我尝试将调用 Java 方法的功能添加到我的 WebView 网页中的方式:
JSObject win = (JSObject) webEngine.getDocument();
win.setMember("app", new Bridge());
下面是我用来调用 getData 的 JavaScript 函数:
function interOp(val){
app.getData(val);
}
此函数在 <select>
的 onchange 事件上调用标签。我所遵循的指南似乎正是这样做的,但是当我运行我的程序时,控制台上没有打印任何内容。
最佳答案
我找到了解决这个问题的方法:不使用返回 HTMLdocument
对象的 webEngine.getDocument();
,而是使用 webEngine.executeScript( "window");
给出一个窗口对象。
关于javascript - 从 JavaFX webview 调用 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35985601/