Android4.3及以下版本加载html源码错误问题

  在做项目的时候碰到这么个问题:服务端返回一串含Javascript的html文本,Android4.3以上版本加载正常,但是以下版本就无法加载,直接显示源码在页面上。

网上搜了一遍,有关联的信息太少,一个是给WebView添加js接口并重写WebViewClient的onPageFinished()方法,先不考虑安全漏洞问题,直接尝试发现并没有用,看来该方法不适用于我的问题,这里是该方法的传送门;另一个有点关联的解决方法是说Android4.3不支持内容重布局,即不用设置WebView的setLayoutAlgorithm方法,再次尝试了下依旧不行。

想到问题会不会和服务端返回的源码有关,然后自己写了Demo,用4.3系统手机加载最简单的html源码,依然不行,可以排除服务端的数据问题了。做项目加载网页的WebView是一个封装的Activity,好公用,一直用的是loadDataWithBaseURL()方法,研究这个问题半天快放弃的时候,随便尝试用loadData()方法居然可以正常加载前面的html源码了,有点喜出望外,赶紧网上搜索为什么,结果还是没找到答案,看了loadDataWithBaseURL()和loadData()两者的区别,也没发现什么缘由。这问题是解决了,可是又给我留下了个疑问,自己已知的途径又找不到答案,所以希望有网友如果看到我这个问题能给予解答。

附上解决问题的一段代码,看起来很简单,折腾了不少时间。

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2) {
     payWebview.loadDataWithBaseURL(null, htmlData, "text/html; charset=UTF-8", "UTF-8", null);
} else {
     payWebview.loadData(htmlData, "text/html; charset=UTF-8", "UTF-8");
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值