android通过webView加载第三方h5应用,部分手机加载部分图片失败和播放部分视频失败的解决方法
2018-02-09 10:17
2106 查看
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }问题相关知识分析:
从Android5.0以后,当一个安全的站点(https)去加载一个非安全的站点(http)时,需要配置Webview加载内容的混合模式,一共有如下三种模式:
MIXED_CONTENT_NEVER_ALLOW:Webview不允许一个安全的站点(https)去加载非安全的站点内容(http),比如,https网页内容的图片是http链接。强烈建议App使用这种模式,因为这样更安全。
MIXED_CONTENT_ALWAYS_ALLOW:在这种模式下,WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http),这是WebView最不安全的操作模式,尽可能地不要使用这种模式。
MIXED_CONTENT_COMPATIBILITY_MODE:在这种模式下,当涉及到混合式内容时,WebView会尝试去兼容最新Web浏览器的风格。一些不安全的内容(Http)能被加载到一个安全的站点上(Https),而其他类型的内容将会被阻塞。这些内容的类型是被允许加载还是被阻塞可能会随着版本的不同而改变,并没有明确的定义。这种模式主要用于在App里面不能控制内容的渲染,但是又希望在一个安全的环境下运行。
分析:在Android5.0以下,默认是采用的MIXED_CONTENT_ALWAYS_ALLOW模式,即总是允许WebView同时加载Https和Http;而从Android5.0开始,默认用MIXED_CONTENT_NEVER_ALLOW模式,即总是不允许WebView同时加载Https和Http。虽然官网给出的建议是,为了安全考虑,使用MIXED_CONTENT_NEVER_ALLOW模式,但是在实际引用中,当我们的服务器已经升级到Https,但是一些页面的资源是第三方的,我们不能要求第三方也都升级到Https,所以我们只能根据系统版本,用代码去设置加载模式为MIXED_CONTENT_ALWAYS_ALLOW。
相关文章推荐
- android通过webView加载第三方h5应用,无法加载图片和播放视频的解决方法
- FinalBitmap在部分手机上listview中加载图片时界面闪退重启应用的问题解决方法
- Android之通过VideoView控件播放一个视频出现的问题以及我的解决办法
- Android开发 activity里面的WebView加载js调用windows.location.reload()会弹出浏览器的解决方法
- android 4.0以上WebView不能全屏播放视频的解决办法
- 完美解决Android的WebView加载失败(404,500),显示的自定义视图
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
- Android WebView 视频播放解决
- android webview 播放swf 失败<彻底解决黑框>
- Android中使用WebView全屏播放视频时home键不起作用的问题解决
- 关于安卓webview加载网页黑屏、部分黑屏或blank的解决方法
- 解决原生webView无法加载部分格式视频的问题
- Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
- android照相、相册获取图片剪裁部分手机异常的解决方法
- 安卓学习笔记---完美解决Android的WebView加载失败(404,500),显示的自定义视图
- android webview 调用本地java代码失败解决方法
- android 4.0以上WebView不能全屏播放视频的解决办法
- Android webview加载html5网络视频全屏播放
- Android编程使WebView支持HTML5 Video全屏播放的解决方法
- Android WebView无法加载本地html文件的解决方法