当前测试Cordova版本v6.3.1
一、Cordova WebView默认不支持打开外部链接
如果想在WebView中打开外部链接需要修改config.xml 指定允许的链接域名,
参考:http://blog.csdn.net/u011127019/article/details/54891888
二、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扩展了页面加载的进度显示,下载文件及下载文件的进度显示,还有下载后自动打开文件等。
注:对于纯Web版推荐使用。 AppCar的WebView 中封装的下载是按下载链接的后缀名处理,而不是根据http中filename创建文件,对于没有后缀的文件统一使用*.rar,所以下载链接中不可以没有后缀。
3.对于下载处理,再次封装,在WebView中的下载使用 Cordova的FileTransfer插件处理。
注:目前对于微信浏览器,QQ浏览器同样也不支持下载,对于这些可以考虑隐藏下载按钮等。或者弹出提示在手机浏览器中打开,然后下载。
使用FileTransfer的下载,是异步下载,不影响页面其他操作。
目前能找的方案如上,若各位网友有更方便或更好的,请随时留言。
更多: