我想用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