WebViewにリモート画像を表示させようとしています(特定のスタイル上の調整が必要です)。これは、他のものの中でそのリモートIMGを参照するHTMLスニペットをWebViewにロードすることで完璧に動作します。しかし唯一の問題は、時にはこのリモートイメージが存在せず、イメージアイコンが壊れてしまうことです。Android WebView:1つの要素(ページ全体ではない)の傍受エラー404
私がしたいのは、リモートイメージの可用性を傍受し、別のイメージに切り替えることでリカバリすることです。私はonReceivedError()
のWebViewClient
を使用しようとしましたが、イメージが利用できない場合でも何とかトリガーしません。次のように
私の現在の画像の読み込みロジックは次のとおりです。
String url = "..."; // remote image URL
String html = String.format("<style>img{display: inline;" +
"height: auto;max-width: 100%%;}</style>" +
"<img src=\"%s\"></img>", url);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, WebResourceRequest req,
WebResourceError rerr) {
Log.e("WEB_VIEW_TEST", "error code: " + errorCode);
}
});
wv.loadData(html, "text/html", null);
私はonReceivedError()
だけでページレベルのエラーをトリガし、私はそれが要素レベルのエラーをトリガするようにする方法をわからないと思います。どんな助けでも大歓迎です。
PS。これを入力している間、私はJSで扱うことを考えました。つまり、リモートのイメージをロードしようとするJSスニペットを使ってwebviewをロードし、エラーが発生した場合にJavaScriptの領域内に別のものをロードします。私はそれを試してみましょう、それがうまくいけば、ここにも投稿します。