您的位置:首页 > 移动开发 > Android开发

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

2017-07-31 16:49 267 查看
 在做项目的时候碰到这么个问题:服务端返回一串含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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐