webview加载数据不全是什么问题
1个回答
推荐于2016-04-04 · 知道合伙人影视综艺行家
关注
展开全部
在使用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。
检查之后发现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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询