Cordova WebView http下载监听整理

当前测试Cordova版本v6.3.1

一、Cordova WebView默认不支持打开外部链接

如果想在WebView中打开外部链接需要修改config.xml 指定允许的链接域名,

参考:http://www.voidcn.com/article/p-tkuwfuuc-bhs.html

二、Cordova WebView默认对于http的下载链接不支持

PC浏览器和手机浏览器都支持下载,对于服务器响应报文中制定如下,会提示浏览器下载文件

'Content-Type': 'application/octet-stream',
  'Content-Disposition': 'attachment; filename='+fileName,
  'Content-Length': stats.size

但是在WebView中点击链接没有反应。

原因:Cordova底层没有处理http的下载链接的监听。

三、解决方案

1.修改Cordova 底层代码,扩展WebView支持下载监听。

例如:android https://www.cnblogs.com/fucking-the-whole-world/p/5333060.html

注:这种不太推荐

2.使用其他已经扩展过的WebView打包 WebApp

目前了解到的有AppCan

例如:使用AppCan打包的WebApp扩展了页面加载的进度显示,下载文件及下载文件的进度显示,还有下载后自动打开文件等。

官方地址:http://www.appcan.cn/

注:对于纯Web版推荐使用。 AppCar的WebView 中封装的下载是按下载链接的后缀名处理,而不是根据http中filename创建文件,对于没有后缀的文件统一使用*.rar,所以下载链接中不可以没有后缀

3.对于下载处理,再次封装,在WebView中的下载使用 Cordova的FileTransfer插件处理。

注:目前对于微信浏览器,QQ浏览器同样也不支持下载,对于这些可以考虑隐藏下载按钮等。或者弹出提示在手机浏览器中打开,然后下载。

使用FileTransfer的下载,是异步下载,不影响页面其他操作。


目前能找的方案如上,若各位网友有更方便或更好的,请随时留言。

更多:

 

cordova-plugin-media音频播放和录制

cordova-plugin-camera相机插件使用

cordova-plugin-contacts联系人操作
相关文章
相关标签/搜索