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

使用WebView加载数据出现找不到网页的问题之解决办法(转)

2012-11-17 12:12 986 查看
在使用webView.loadData(data, "text/html", "utf-8"),出现找不到网页的问题,

检查之后发现data数据是正确的,也有上网的权限,可是就是找不到网页,

后经过查找,找到了解决方法:把
webView.loadData 改为 webView.loadDataWithBaseURL 方法就可以了,

可以这样使用:webView.loadDataWithBaseURL(null,data,
"text/html", "utf-8", null);

原因如下:

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

webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html", "utf-8");

这样写之后会发现错误没有了,但是显示效果不好,一些背景颜色排版效果都没有了。

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String
historyUrl)

推荐使用loadDataWithBaseURL(),只是多了两个参数,我们可以这样使用

webView.loadDataWithBaseURL(null,data, "text/html", "utf-8", null);

这样html代码就会完美解析了。

注意,访问网络要在配置文件中加上权限

webView.getSettings().setJavaScriptEnabled(true);

让WebView 支持JavaScript。

原文:http://www.eoeandroid.com/thread-185654-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: