0

アプリケーションの WebView にキャプチャ jpeg 画像 (Java サーブレットによって動的に生成される) を表示しようとしていますが、キャプチャ画像の代わりに青い疑問符が表示されることがあります。以下は、拡張するクラスのshouldOverrideUrlLoading(WebView view, String url)メソッドにあるものですMyWebViewClientWebViewClient

マニフェストでインターネット アクセスを有効にしていますが、約 80% の確率で問題が発生します。つまり、画像が正しく表示されることもありますが、非常にまれです。

ここに別の同様の質問がありましたImage with dynamic src loaded 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 コードを 1 行ずつ読む
  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 に答える