Android WebView无法加载外部图像

时间:2015-02-13 22:41:16

标签: android html webview

我以前曾多次见过这个问题,但没有回答。

我有一个带有WebView的Android应用程序。我从Web服务加载HTML。在这个HTML里面有文字,链接和图像。 文本和链接正在运行,但尽管几乎所有图像都显示良好,但其中一些图像显示的是蓝色的光标而不是图像。

我在我的代码中添加了一条跟踪:

Log.d("", "_htmlfrombackend="+_htmlfrombackend);
webView.loadDataWithBaseURL("", _htmlfrombackend, "text/html", "UTF-8", "");

这是输出:

_htmlfrombackend=<p>text text text... <img width="200" height="300" alt="" src="http://www.mysamplesite.com/mysampleimage.jpeg" style="width: 200px; height: 300px;" />...text text</p>

该图像显示为蓝色方块。这是截图:

enter image description here

所以现在我尝试了这个:

String _newHtml = "<img width=\"200\" height=\"300\" alt=\"\" src=\"http://www.mysamplesite.com/mysampleimage.jpeg\" style=\"width: 200px; height: 300px;\" />"+_htmlfrombackend;
webView.loadDataWithBaseURL("", _newHtml, "text/html", "UTF-8", "");

我的网页视图显示了这一点:

enter image description here

第一张图片显示效果很好,第二张图片显示蓝色方块但是它们有相同的img标签! 我尝试在html和body标签之间包装html代码,但结果是一样的。

在Android 4.0,4.4和5.0中会发生这种情况。

任何人都可以知道为什么我的硬编码图像显示正确但后端的图像不是?

亲切的问候!

编辑得更清楚。 编辑:我已经添加了图片。

新编辑:我一直在寻找解决方案。我已经深入阅读了我收到的HTML并且它已经正确形成,没有格式错误的标签,只有一个奇怪的东西,每个img标签都在h2标签内,我的意思是:

<h2><img .../></h2>

但是我尝试在我的示例中添加这些标记没有区别:

String _newHtml = "<h2><img width=\"200\" height=\"300\" alt=\"\" src=\"http://www.mysamplesite.com/mysampleimage.jpeg\" style=\"width: 200px; height: 300px;\" /></h2>"+_htmlfrombackend;
    webView.loadDataWithBaseURL("", _newHtml, "text/html", "UTF-8", "");

我收到的图像仍然显示,但

新编辑:我仍在寻找解决方案,但我有一个新线索。我试图显示错误的图片:

String _newHtml = "<img width=\"200\" height=\"300\" alt=\"\" src=\"http://asdafsqwe\" style=\"width: 200px; height: 300px;\" />"+_htmlfrombackend;
    webView.loadDataWithBaseURL("", _newHtml, "text/html", "UTF-8", "");

我的屏幕显示了这个:

enter image description here

正如你所看到的,里面有一个带有破碎图像的正方形。这让我觉得蓝色方块并不意味着获取图像有问题,应该有任何其他类型的问题。

1 个答案:

答案 0 :(得分:-1)

在HTML代码img标记中,尝试src=new File( url ).toURI()获取本地文件。