我正在编写一个使用基于Swing的用户界面的Java程序,但是我需要访问WebView
,所以我实现了JFXPanel
来处理它。如果需要,WebView
应该将广告横幅加载到用户可以点击的程序中。目前,当点击广告时,新页面将在WebView
内加载。如果可能的话,我希望在用户的默认浏览器中打开页面,并让页面包含广告刷新。我怎样才能做到这一点?
答案 0 :(得分:1)
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>()
{
@Override
public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue,
Worker.State newValue)
{
String toBeopen =
engine.getLoadWorker().getMessage().trim();
System.out.println("tobeopen: " + toBeopen);
if (toBeopen.contains("http://") || toBeopen.contains("https://")) {
engine.getLoadWorker().cancel();
try {
Desktop.getDesktop().browse(new URL(toBeopen).toURI());
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (URISyntaxException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
});