当前位置:  开发笔记 > 前端 > 正文

仅在模拟器中使用WebView.loadData()的"网页不可用"

如何解决《仅在模拟器中使用WebView.loadData()的"网页不可用"》经验,为你挑选了2个好方法。

我正在调用loadData我的WebView并以字符串的形式传递一些HTML,如下所示:

webView.loadData( htmlString, "text/html", "utf-8" );

它在我的Galaxy Tab 10.1上工作正常,但WebView显示:

Webpage not available

在模拟器上运行时,所有设置都与我的Galaxy Tab匹配.android.permission.INTERNET清单中的设置没有任何效果,但我不需要该权限,因为我正在渲染内存中的HTML,而不是通过数据连接访问任何内容.

这是怎么回事?



1> Viraj..:

尝试使用此代码

webView.loadData( URLEncoder.encode(htmlString).replaceAll("\\+"," "), "text/html", "utf-8" );

绝对的

webView.loadData( htmlString, "text/html", "utf-8" );

它应该工作,因为有时像'%','\','#'这样的字符如果没有正确编码就会产生问题



2> fardjad..:

2.x平台上loadData()失败在某些情况下(它需要进行转义的HTML),使用loadDataWithBaseURL()替代,并通过nullbaseUrlhistoryUrl:

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

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有