WebView无法加载数据?

时间:2010-01-01 16:10:23

标签: java android webview

我正在尝试使用a从rss Feed加载已解析的html数据 WebView,但webview声称该页面:

“data:text / html; utf-8,[我正在尝试显示的HTML]”

不可用。

alt text

我觉得奇怪的是它似乎把html数据放入了 url,当我只是想让它显示它时。

以下是我对webview的代码:

Bundle data = getIntent().getExtras();

WebView webview = new WebView(this);
setContentView(webview);

webview.loadData(data.getString("DEFAULTTEXT"), "text/html", "utf-8");

HTML已经在Bundle中的字符串中传递了 identifier:DEFAULTTEXT。我已经测试了类,并且传递了HTML 很好,它只是没有正确显示。

它在我试过的一些网页上运行良好,但其他网页却没有。我会尝试发布一个有效的代码和一个没有代码的代码。

4 个答案:

答案 0 :(得分:3)

Huuu ....所以我今天早上打开电脑,效果很好。我还是不知道问题是什么。 :/

编辑:没关系。它适用于我尝试显示的部分页面,但不是所有页面。

Edit2:将其交换为loadDataWithBaseURL就像魅力一样。

答案 1 :(得分:2)

如上所述,当HTML中包含'%','\','#'等字符时,需要对其进行转义,而loadData似乎并不会自动执行。

loadDataWithBaseURL而不是loadData确实转义,似乎解决了这个问题。只需对baseUrl和historyUrl使用null。因此问题中的示例代码更改为:

Bundle data = getIntent().getExtras();

WebView webview = new WebView(this);
setContentView(webview);

webview.loadDataWithBaseURL(null,data.getString("DEFAULTTEXT"), "text/html", "utf-8",null);

答案 2 :(得分:1)

我相信loadData *的这种偶发行为是因为您尝试加载的页面内容是什么。如果它是简单的html它没有问题。但如果它有像​​css或其他需要外部信息的功能的组件,它将会纾困。 我的经历!

答案 3 :(得分:0)

您确定您在manifest.xml中定义了正确的权限吗?