android5.0加载h5页面显示空白

我这个问题出现在android5.0以上---android6.0以下的机子上,  其他版本没问题。

客服给我反馈说这些问题全部出现在 oppo、vivo上面,都是android5.1.1的版本上。

解决方法:

启用mixed content

在Android5.0中,WebView方面做了些修改,如果你的系统target api为21以上:

  • 系统默认禁止了mixed content和第三方cookie。可以使用setMixedContentMode() 和 setAcceptThirdPartyCookies()以分别启用。
  • 系统现在可以智能选择HTML文档的portion来绘制。这种新特性可以减少内存footprint并改进性能。若要一次性渲染整个HTML文档,可以调用这个方法enableSlowWholeDocumentDraw()
  • 如果你的app的target api低于21:系统允许mixed content和第三方cookie,并且总是一次性渲染整个HTML文档。 
    在使用WebView的类中添加如下代码:
/**
 * 启用mixed content    android 5.0以上默认不支持Mixed Content
 *
 * 5.0以上允许加载http和https混合的页面(5.0以下默认允许,5.0+默认禁止)
 * */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

上面的方法就解决了android5.0加载h5空白的问题。

 

 

其他普遍加载空白的问题就是一些常见的方法(版本比如:android4.4以上版本、android5.0以上版本、android6.0以上版本之类的)需要设置以下方法:

1、适配https的ssl证书问题

public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed();  // 接受所有网站的证书
//        super.onReceivedSslError(view, handler, error);
    }

2、android6.0以下版本加载h5页面之后,h5里面的方法不能被触发,也就是点击没反应,解决方法如下:

/**设置适应Html5的一些方法*/
webView.getSettings().setDomStorageEnabled(true);

设置为true就可以了,如果还是不能点击就可以去找前端的哥们来让他修改他的代码了,  亲身经历过!!!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值