Sto cercando di ottenere la versione cache offline di un sito Web HTML5 da visualizzare quando la rete si trova all'interno di una webview.visualizza la versione cache di webview in android
Ho ignorato onReceivedError
ok, e quando la rete non funziona, questo metodo viene chiamato. Il problema è che visualizza il messaggio generico "Pagina Web non disponibile".
Come posso ottenere per visualizzare la versione cache HTML5 della pagina? La memoria offline della webapp funziona in modo definitivo, poiché funziona bene nella versione desktop di Firefox e Chrome.
So che posso chiamare loadData
nella vista manualmente in onReceivedError
, ma non sono sicuro da dove posso ottenere il valore memorizzato nella cache HTML5.
Nota: Se ho impostato alcuni dati fittizi in loadData
quali view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
e quindi fare clic su indietro (rilevando indietro evento e chiamare webview.goBack();
quindi la versione cache della pagina viene visualizzata ok
Ecco alcune righe di codice. ho aggiunto per impostare il 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);
questa è probabilmente la soluzione più "pulita", quindi non ti dare i punti di merito :) – Marty