小编今天很兴奋,困扰一周的问题终于解决了,此处撒花~~
本人负责h5页面,http图片显示不了,领导让找问题,可难坏了小编,不就是一个img标签加图片路径吗?前端还能改出花来!
不得已,小编开始研究cordova壳子
我们都知道Android5.0上 WebView不支持Http和Https混合,不用说,肯定是这个原因,网上一堆android写法,修改混合,但是都不适用cordova,还有一些java代码,小编看都没看就否了
最终还是朋友提醒,有java文件配置混合,这才解决了问题~~
修改支持混合
http图片不显示情况
- 你的网页是https协议,你加载了http的图片
原因
- Android5.0上 WebView不支持Http和Https混合模式
修改办法(设置支持混合)
文件修改位置
\apptest\platforms\android\CordovaLib\src\org\apache\cordova\engine\SystemWebViewEngine.java
修改方法
- 需要设置setMixedContentMode(有三种值)
- MIXED_CONTENT_ALWAYS_ALLOW:允许从任何来源加载内容,即使起源是不安全的;
- MIXED_CONTENT_NEVER_ALLOW:不允许Https加载Http的内容,即不允许从安全的起源去加载一个不安全的资源;
- MIXED_CONTENT_COMPATIBILITY_MODE:当涉及到混合式内容时,WebView 会尝试去兼容最新Web浏览器的风格。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
}
//或者直接:
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
还有一些WebView 里的常见问题:https://www.jianshu.com/p/fea5e829b30a