Android:WebView loadDataWithBaseURL 不显示验证码图像
我试图在应用程序的 WebView 中显示验证码 jpeg 图像(由 Java servlet 动态生成),但是,它有时会显示蓝色问号而不是验证码图像。下面是我在扩展 WebViewClient
的 MyWebViewClient
类的 shouldOverrideUrlLoading(WebView view, String url)
方法中的内容
我在我的 WebViewClient 中启用了互联网访问明显,并且该问题出现的时间约为 80%。即有时图像确实显示正确,但非常罕见。
这里还有另一个类似的问题 Image with Dynamic src Loads in Android browser, but not in Webview,但确实似乎没有明确的答案。
提前致谢
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();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚遇到了同样的问题。我发现了问题并解决了它(就我而言)。您可以注意到,在 HTML 代码中,img 标记的 src 指向站点的相对路径。类似于
。您所要做的就是注入完整路径(主机+相对路径)以获得类似
.
" (可能在您的网站中有些不同)与每一行匹配
src=""
内的链接然后图像就会出现;)
I just got the same problem. I identified the issue and solved it (in my case). You can notice that in HTML code, the img tag has the src pointing to the relative path of the site. Something like
<img src="/relativepath/captcha.jpg?12345678"/>
. All you have to do is to inject the full path (host + relative path) to obtain something like<img src="http://yourhost.com/relativepath/captcha.jpg?12345678">
."<img src"
(maybe something a little bit differente in your site) with each linesrc=""
<img src="http://host.com" + link >
Then the image will appear ;)
尝试使用
view.loadUrl(URL.toString());
而不是loadDataWithBaseURL
Try using
view.loadUrl(URL.toString());
instead ofloadDataWithBaseURL