0

我试图在我的应用程序的 WebView 中显示一个验证码 jpeg 图像(由 Java servlet 动态生成),但是,它有时会显示一个蓝色问号而不是验证码图像。以下是我在扩展类的shouldOverrideUrlLoading(WebView view, String url)方法中的内容MyWebViewClientWebViewClient

我在清单中启用了 Internet 访问,并且大约 80% 的时间都会出现问题。即有时图像确实显示正确,但非常罕见。

这里还有另一个类似的问题Image with dynamic src loading 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();  
            }
4

2 回答 2

1

我刚遇到同样的问题。我发现了这个问题并解决了它(就我而言)。您可以注意到在 HTML 代码中,img 标签的 src 指向站点的相对路径。类似的东西<img src="/relativepath/captcha.jpg?12345678"/>。您所要做的就是注入完整路径(主机 + 相对路径)以获得类似<img src="http://yourhost.com/relativepath/captcha.jpg?12345678">.

  1. 逐行阅读 HTML 代码
  2. 将每一行的序列"<img src"(可能在您的站点中有些不同)匹配
  3. 当您找到该行时,您会将其拆分,直到您在src=""
  4. 使用主机名重建您的标签:<img src="http://host.com" + link >

然后图像将出现;)

于 2013-08-02T15:29:08.063 回答
0

尝试使用view.loadUrl(URL.toString());而不是loadDataWithBaseURL

于 2011-09-02T01:13:45.833 回答