当使用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中是否有关于此功能的功能请求,如果没有,则创建一个新的功能请求。