android WebView loadData不能解析
16lz
2021-01-24
(转)android WebView loadData不能解析(找不到网页)
转自http://hi.baidu.com/googlewell/item/3b32edd4d70b1aca1b72b42f
public voidloadData(Stringdata,StringmimeType,Stringencoding)
loadData()中的htmldata中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。因为css中经常用'#', '%'等字符,所以大部分网页会出现解析错误,需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f 。
webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html", "utf-8");这样写之后会发现错误没有了,但是显示效果不好,一些背景颜色排版效果都没有了。
推荐使用loadDataWithBaseURL():public voidloadDataWithBaseURL(StringbaseUrl,Stringdata,StringmimeType,Stringencoding,StringhistoryUrl)
只是多了两个参数,我们可以这样使用webView.loadDataWithBaseURL(null,data, "text/html", "utf-8", null);这样html代码就会完美解析了。
注意,访问网络要在配置文件中加上权限webView.getSettings().setJavaScriptEnabled(true); 让WebView支持JavaScript。
更多相关文章
- Android中WebView加载网页设置进度条
- android 6.0编译时出现ERROR:Security problem ,see jack server l
- android studio创建新项目color.xml文件错误
- EditText的错误信息
- Android(安卓)studio问题小记---Could not find com.android.sup
- 关于Android(安卓)WebView的那点事儿..
- Android(安卓)Studio 中setOnClickListener出错
- 使用Android(安卓)sdk/build-tools/dx工具转jar为dex时出现:-Djav
- Android(安卓)Design Support Library(2)- TextInputLayout的使用