webview – JavaFX 8 WebEngine:如何从java到console.log()从java到System.out?

前端之家收集整理的这篇文章主要介绍了webview – JavaFX 8 WebEngine:如何从java到console.log()从java到System.out?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 JavaFX WebEngine中使用JavaFX和 JavaScript引擎开发应用程序.我想从javascript获取反馈以进行调试. WebEngine中的控制台输出会发生什么?有没有办法可以访问它,或者在java中重定向到System.out?

解决方法

以下代码将console.log()重定向到JavaBridge.log():
import netscape.javascript.JSObject;

public class JavaBridge
{
    public void log(String text)
    {
        System.out.println(text);
    }
}

[...]

webEngine.getLoadWorker().stateProperty().addListener((observable,oldValue,newValue) ->
{
    JSObject window = (JSObject) webEngine.executeScript("window");
    JavaBridge bridge = new JavaBridge();
    window.setMember("java",bridge);
    webEngine.executeScript("console.log = function(message)\n" +
        "{\n" +
        "    java.log(message);\n" +
        "};");
});

猜你在找的Java相关文章