Web ビュー内でネットワークがダウンしているときに、Web サイトの HTML5 オフライン キャッシュ バージョンを表示しようとしています。
onReceivedError
okをオーバーライドしました。ネットワークがダウンすると、このメソッドが呼び出されます。問題は、一般的な「Web ページは利用できません」というメッセージが表示されることです。
ページの HTML5 キャッシュ バージョンを表示するにはどうすればよいですか? Firefox と Chrome のデスクトップ バージョンで正常に動作するため、webapp のオフライン ストレージは確実に動作しています。
loadData
でビューを手動で呼び出すことができることはわかってonReceivedError
いますが、HTML5 キャッシュ値をどこから取得できるかわかりません。
注:loadData
などのダミーデータを設定しview.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
てからクリックバックすると(バックイベントを検出して呼び出すとwebview.goBack();
、キャッシュされたバージョンのページが正常に表示されます.
WebView をセットアップするために追加したコード行を次に示します。
webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);
webview.getSettings().setAppCachePath("/data/data/com.stuff.android/cache");
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);