我想用JavaFX作为JavaScript的回调调用Java函数。 首先,我初始化过程中添加的Java类作为窗口的成员:从JavaScript调用Java函数
JSObject jsobj = (JSObject) currentWebEngine.executeScript("window");
jsobj.setMember("java", this);
Java的请求功能Platform.runLater()
内描述如下:异步请求是在完成后
String script = "document.makeRequest('"+inputString+"')";
currentWebEngine.executeScript(script);
JavaScript方面,它应该调用一个java函数来返回结果。但是,我在这方面收到了例外。我甚至尝试调用一个不带参数的函数,仍然不能正常工作:
window.java.returnResult();
,但我得到以下异常:
Exception in runnable netscape.javascript.JSException: TypeError: 'undefined' is not an object
它无关异步请求,因为我甚至尝试调用它直接在makeRequest()函数中得到相同的错误。 任何想法,我在那方面做错了什么? 以前的代码集成在桌面JFrame应用程序中,而不是小程序。
在[Oracle WebView教程](http://docs.oracle.com/javafx/2/webview/jfxpub-webview.htm)中演示WebView到Java回调的示例是否适合您? – jewelsea 2013-05-06 20:07:17