我遇到的情况是我尝试使用webview
在loadData
中显示用户生成的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或整个互联网上找到任何有用的方向。有没有人有任何想法?
答案 0 :(得分:0)
我会等到Photobucket在进一步测试之前完成他们最近的更新...虽然你说你确定它不是Photobucket的特定问题,互联网现在充斥着海报无法查看Photobucket链接到基于android的图像设备。如果您的代码适用于未托管在photobucket上的所有其他图像,那么您的代码就可以了。