如何使用JavaFX2.0WebEngine处理文件下载



当使用JavaFX 2.0的WebEngine和WebView来显示一些HTML内容时,我根本无法处理从HTML页面下载的内容。当我点击任何可下载的链接时,什么都不会发生。

是否可以在JavaFX 2.0 WebView/WebEngine中处理下载?

下载功能目前未在WebView中实现。您可以通过监视WebView的位置属性,然后创建适当的代码来执行下载,从而自己实现它。

webView.getEngine().locationProperty().addListener(new ChangeListener<String>() {
  @Override public void changed(ObservableValue<? extends String> observableValue, String oldLoc, String newLoc) {
    // check if the newLoc corresponds to a file you want to be downloadable
    // and if so trigger some code and dialogs to handle the download.
  }
});

在这个zenjava博客条目中可以找到一个处理JavaFX下载的代码示例。编辑:此博客页面已不存在。这是这个博客页面的最新档案。

web浏览器中的下载通常由http内容类型或内容处置标头触发,并且可以基于mime类型/文件扩展名映射。上述方案仅适用于文件扩展名从位置派生的文件扩展名映射。为了处理基于内容类型或内容处置标头的下载,您可能需要实现自己的java.neturl连接处理程序。

为了在核心JavaFX库中实现此功能,您可以检查JavaFXJira中是否有关于此功能的功能请求,如果没有,则创建一个新的功能请求。

最新更新