我试图在我的应用程序的WebView中显示一个验证码jpeg图像(由Java servlet动态生成),但是,它有时会显示一个蓝色问号而不是验证码图像。以下是shouldOverrideUrlLoading(WebView view, String url)
MyWebViewClient
类WebViewClient
类扩展try
{
CookieSyncManager.getInstance().sync();
Log.v("Hello","CookieStore: " + httpClient.getCookieStore().toString());
HttpResponse response = httpClient.execute(httppost);
data = new BasicResponseHandler().handleResponse(response);
view.loadDataWithBaseURL(URL.toString(), data, "text/html", "UTF-8" , null);
//Log.v("Hello","Data: " + data.toString());
}
catch (ClientProtocolException e)
{
Log.v("Hello","ClientProtocolException:Overriding");
Log.v("Hello",e.toString());
e.printStackTrace();
}
catch (IOException e)
{
Log.v("Hello","IOException:Overriding");
Log.v("Hello",e.toString());
e.printStackTrace();
}
我的清单中启用了互联网访问,大约80%的时间都会出现问题。即有时图像确实显示正确,但非常罕见。
此处还有另一个类似的问题Image with dynamic src loads in Android browser, but not in Webview,但似乎没有明确的答案。
提前致谢
{{1}}
答案 0 :(得分:1)
我遇到了同样的问题。我确定了问题并解决了它(在我的例子中)。您可以注意到,在HTML代码中,img标记的src指向站点的相对路径。像<img src="/relativepath/captcha.jpg?12345678"/>
这样的东西。您所要做的就是注入完整路径(主机+相对路径)以获得类似<img src="http://yourhost.com/relativepath/captcha.jpg?12345678">
的内容。
"<img src"
(可能是您网站中的某些内容)与每行匹配src=""
<img src="http://host.com" + link >
然后会出现图像;)
答案 1 :(得分:0)
尝试使用view.loadUrl(URL.toString());
代替loadDataWithBaseURL