Estoy tratando de obtener la versión en caché sin conexión HTML5 de un sitio web para mostrar cuando la red está dentro de una vista web.que muestra la versión almacenada en caché de webview en android
He reemplazado onReceivedError
bien, y cuando la red está inactiva, se llama a este método. El problema es que muestra el mensaje genérico de "Página web no disponible".
¿Cómo puedo obtener que muestre la versión en caché HTML5 de la página? El almacenamiento fuera de línea de la aplicación web definitivamente está funcionando, ya que funciona bien en la versión de escritorio de Firefox y Chrome.
Sé que puedo llamar al loadData
en la vista manualmente en onReceivedError
, pero no estoy seguro de dónde puedo obtener el valor en caché HTML5.
Nota: Si fijo algunos datos ficticios en loadData
como view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
y luego en la espalda (mediante la detección de volver evento y llamar webview.goBack();
a continuación la versión en caché de la página se visualiza bien
Estas son algunas líneas de código. he añadido a la configuración de la vista web:.
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);
esta es probablemente la solución "más limpia", así que le doy los puntos de recompensa :) – Marty