如何拒绝从javafx web访问网页

时间:2015-12-20 01:59:29

标签: java javafx webview kiosk javafx-webengine

我目前正在javafx开展一个kiosk项目。它使用WebView / WebEngine。我需要允许自助服务终端管理员禁止访问某些网站,我知道如何检查它们是否匹配,但我如何挂钩webengine以便它会告诉我何时进入某个页面。自助服务终端检查它,然后我可以将其重定向到阻止网址。我怎么能这样做

1 个答案:

答案 0 :(得分:1)

向WebView的WebEngine的locationProperty()添加一个侦听器,并在侦听器中检查新位置是否与您的黑名单相匹配。

例如(在Java 8中):

WebEngine engine = webview.getEngine();
engine.locationProperty().addListener((observable, oldValue, newValue) -> {
    if (newValue.contains("badsite")) { // replace with your URL checking logic
        Platform.runLater(() -> {
            // Load your block page url
            engine.load("http://example.com"));
        }
    }
});

根据this answer to a similar question,如果engine.load()调用未包含在Platform.runLater()中,则JVM可能会崩溃。