propiedades - webview android studio 2017
¿Cómo puedo hacer que webview use el manifiesto de caché HTML5? (3)
Prueba este código:
private void enableHTML5AppCache() {
webView.getSettings().setDomStorageEnabled(true);
// Set cache size to 8 mb by default. should be more than enough
webView.getSettings().setAppCacheMaxSize(1024*1024*8);
// This next one is crazy. It''s the DEFAULT location for your app''s cache
// But it didn''t work for me without this line
webView.getSettings().setAppCachePath("/data/data/"+ getPackageName() +"/cache");
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
}
Here el enlace.
En dispositivos Android hasta 4.4.2, el navegador y Chrome predeterminados admiten el manifiesto de caché HTML5. Sin embargo, en esos mismos dispositivos, el componente WebView no parece admitir el manifiesto de caché HTML5. ¿Alguien sabe cómo puedo hacer que el componente WebView sea compatible con el manifiesto HTML5?
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl)
{
// The magic redirect
if( "http://HTML5app.com/app/".equals(failingUrl) ) {
// main.html is the place we are redirected to by the server if we are online
mWebView.loadUrl("http://HTML5app.com/app/main.html");
return;
}
else if( "http://HTML5app.com/app/main.html".equals(failingUrl) ) {
// The cache failed - We don''t have an offline version to show
// This code removes the ugly android''s "can''t open page"
// and simply shows a dialog stating we have no network
view.loadData("", "text/html", "UTF-8");
showDialog(DIALOG_NONETWORK);
}
}
El método anterior se utilizará para controlar la redirección en el escenario fuera de línea. [Para implementar appcache y ruta consulte el comentario anterior.
Enlace de referencia: mecanismo de caché HTML5 en Android
webView.getSettings().setDomStorageEnabled(true);
// Set cache size to 8 mb by default. should be more than enough
webView.getSettings().setAppCacheMaxSize(1024*1024*8);
// This next one is crazy. It''s the DEFAULT location for your app''s cache
// But it didn''t work for me without this line
webView.getSettings().setAppCachePath("/data/data/"+ getPackageName() +"/cache");
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);