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