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()两者的区别,也没发现什么缘由。这问题是解决了,可是又给我留下了个疑问,自己已知的途径又找不到答案,所以希望有网友如果看到我这个问题能给予解答。
附上解决问题的一段代码,看起来很简单,折腾了不少时间。
网上搜了一遍,有关联的信息太少,一个是给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"); }
相关文章推荐
- iOS9以下版本使用WKWebView加载本地HTML文件不显示,处理时容易忽略的问题
- Discuz!教程之解决 Discuz!X3.4以下版本前台打开卡慢、后台登陆卡死或504错误等问题
- JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
- JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
- 关于Android4.4以下版本Webview执行LoadUrl加载js导致键盘隐藏的问题(富文本编辑器)
- ios webview加载html提示101错误问题解决
- ie9以下版本,ajax的error提示no transport的问题
- 解决由于IIS、VS低版本源码 兼容性问题。IIS 6 元数据库与IIS 6配置的兼容性 windows 身份验证
- .NET/Rotor源码研究1补遗 - 解决无法检测操作系统版本的错误
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- 这种错误是由于stm32函数库版本问题引起
- Patchrom 之源码同步遇到的问题---源码同步“remote: fatal: early EOF” 错误
- python flask 加载html运行错误
- Windows Phone 用WebBrowser加载本地图片以及解决加载html页面出现乱码问题
- 解决Vmware Player的vmx86.sys版本错误,无法启动虚拟机的问题
- CDHtmlView 加载 GoogleMap 无法正常描画 问题解决
- 第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 java.lang.ClassNotFoundException 踩坑解决问题详细内幕版本
- 问题分享:最近测试VDI-in-a-Box使用AD做身份验证出现以下错误提示:
- iOS加载本地html,css样式失效问题
- Android Eclipse 加载外部工程后错误提示 Unable to resolve target 'android-3'的问题解决