如何使用JavaFX 2.0 WebEngine处理文件下载

时间:2012-03-30 00:01:16

标签: javafx javafx-2

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

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

1 个答案:

答案 0 :(得分:14)

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

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 blog entry中找到处理JavaFX下载的代码示例。编辑:此博客页面不再存在。以下是此博客页面的latest archive

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

要在核心JavaFX库中实现此功能,您可以检查JavaFX Jira周围的功能请求,如果不存在,则创建新的功能请求。