如何拒绝从 javafx web 访问网页
How to deny access to webpage from javafx web
我目前正在使用 javafx 开发一个信息亭项目。它使用 WebView/WebEngine。我需要允许 kiosk 管理员禁止访问某些网站,我知道如何检查它们是否匹配,但我如何挂钩 webengine 以便它在进入页面时告诉我。售货亭检查它,然后我可以将它重定向到块页面 url。我该怎么做
向 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 可能会崩溃。
我目前正在使用 javafx 开发一个信息亭项目。它使用 WebView/WebEngine。我需要允许 kiosk 管理员禁止访问某些网站,我知道如何检查它们是否匹配,但我如何挂钩 webengine 以便它在进入页面时告诉我。售货亭检查它,然后我可以将它重定向到块页面 url。我该怎么做
向 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 可能会崩溃。