Android 2.3 webview loadData只显示编码字符

时间:2012-10-09 03:51:23

标签: android android-webview

我正在尝试使用带有loadData的webview来显示图像:

        String data = "<html><head><title>Photo</title></head>";
        data = data + "<body><center><img width=\"100%\" src=\"" + imageUrl + "\" /></center></body></html>";

        imageWebView.getSettings().setLoadWithOverviewMode(true);
        imageWebView.getSettings().setUseWideViewPort(true);
        imageWebView.getSettings().setBuiltInZoomControls(true);
        imageWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        imageWebView.setScrollbarFadingEnabled(false);
        imageWebView.loadData(data, "text/html", "UTF-8");
        imageWebView.setBackgroundColor(0x00000000);

在4.1模拟器中,这可以正常工作,我可以看到图像。在2.3中它只显示编码的html代码。

1 个答案:

答案 0 :(得分:5)

这似乎是由known bug in WebView引起的,如果您提供的数据中有任何百分比,则数据会被解释为URL。

如错误报告中所述,已知的解决方法是将所有%替换为&#37;

similar SO post中建议了另一种似乎运作良好的解决方法,并且还应涵盖可能导致同一问题的任何其他字符:

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