Я пытаюсь заставить автономно кэшированную версию HTML5 веб-сайта отображаться, когда сеть не работает внутри веб-просмотра.
Я переопределил onReceivedError
нормально, и когда сеть не работает этим методомназывается.Проблема заключается в том, что оно отображает общее сообщение «Веб-страница недоступна».
Как я могу получить его для отображения кэшированной версии HTML5-страницы?Автономное хранилище веб-приложения определенно работает, так как оно отлично работает в настольных версиях Firefox и Chrome.
Я знаю, что могу loadData
вызвать представление вручную в onReceivedError
, но я не уверенгде я могу получить кэшированное значение HTML5 из.
Примечание: Если я установлю некоторые фиктивные данные в loadData
, такие как view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
, а затем нажму обратно (обнаружив событие back и вызвав webview.goBack();
, тогда кэшируемоеверсия страницы отображается нормально.
Вот несколько строк кода, которые я добавил для настройки веб-просмотра:
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);