代码改变世界

(转)android WebView loadData不能解析(找不到网页)

  ...平..淡...  阅读(2233)  评论(0编辑  收藏  举报

public void  loadData  (String data, String mimeType, String encoding)

loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。因为css中经常用'#', '%'等字符,所以大部分网页会出现解析错误,需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f 。

webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html",  "utf-8");这样写之后会发现错误没有了,但是显示效果不好,一些背景颜色排版效果都没有了。

 

推荐使用loadDataWithBaseURL():public void  loadDataWithBaseURL  (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

只是多了两个参数,我们可以这样使用webView.loadDataWithBaseURL(null,data, "text/html",  "utf-8", null);这样html代码就会完美解析了。

注意,访问网络要在配置文件中加上权限webView.getSettings().setJavaScriptEnabled(true);  让WebView 支持JavaScript。

 

编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示