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

在使用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  ([url=]String[/url] baseUrl, [url=]String[/url] data, [url=]String[/url] mimeType, [url=]String[/url] encoding, [url=]String[/url] 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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值