使用默认浏览器

时间:2015-08-09 22:29:58

标签: webview javafx

我正在编写一个使用基于Swing的用户界面的Java程序,但是我需要访问WebView,所以我实现了JFXPanel来处理它。如果需要,WebView应该将广告横幅加载到用户可以点击的程序中。目前,当点击广告时,新页面将在WebView内加载。如果可能的话,我希望在用户的默认浏览器中打开页面,并让页面包含广告刷新。我怎样才能做到这一点?

1 个答案:

答案 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();
                            }
                   }
          }
});