图像未在Android WebView中显示

时间:2013-02-26 21:12:54

标签: android android-webview photobucket

我遇到的情况是我尝试使用webviewloadData中显示用户生成的HTML。我的代码是这样的:

String content = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
    "<html><head>" +
    "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" +
    "</head><body>";
content += htmlStr + "</body></html>";
wv.loadData(content, "text/html", "UTF-8");

在大多数情况下,它的效果非常好,但我无法显示某些类型的图像。在我的大多数测试中,插入<img src="..."/>标签工作正常,但我发现Photobucket上的图像链接根本不会显示;我得到一个带有问号的小盒子而不是图像。

点击Photobucket上图像的链接往往会将您带到可在其网站上查看该图像的页面,而不仅仅是原始图像本身。我觉得这个问题与此有关。我怀疑它可能是一个“Referer”问题,或者可能是用户代理,或者是那种性质的东西,但是我不能为我的生活让它正确显示。

我已尝试切换到loadDataWithBaseURL并提供BaseURL(因为我相信这将用作引用网址),但这没有任何区别。我也尝试使用loadUrl("http://photobucket..."代替并提供HashMap手动设置的Referer标头,但这也不起作用。实际上,切换到loadUrl会立即重定向到设备的浏览器以加载Photobucket页面。我尝试提供自定义WebViewClient并覆盖shouldOverrideUrlLoading,但我要做的最好的事情是在WebView内显示完整的Photobucket页面。

我确信这不是Photobucket的特定问题,恰好是我在测试时发现此问题的网站。

我真的想找到一些方法来处理这种情况,以便这可以正常工作,但我一直无法在SO或整个互联网上找到任何有用的方向。有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

我会等到Photobucket在进一步测试之前完成他们最近的更新...虽然你说你确定它不是Photobucket的特定问题,互联网现在充斥着海报无法查看Photobucket链接到基于android的图像设备。如果您的代码适用于未托管在photobucket上的所有其他图像,那么您的代码就可以了。