Appcache en Android Webview no descargar fuentes
Sé que el appcache de mi aplicación web funciona bien porque lo he probado en Chrome, incluso en Chrome para Android funciona, pero no cuando lo carga en mi aplicación de Android desde una vista web. Tengo los siguientes ajustes:
myWebView = (WebView) v.findViewById(R.id.webView); WebSettings webSettings = myWebView.getSettings(); webSettings.setDomStorageEnabled(true); webSettings.setJavaScriptEnabled(true); webSettings.setSupportMultipleWindows(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setAppCacheMaxSize(1024*1024*16); String appCachePath = getActivity().getApplicationContext().getCacheDir().getAbsolutePath(); webSettings.setAppCachePath(appCachePath); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSettings.setDatabaseEnabled(true); String databasePath = "/data/data/" + getActivity().getPackageName() + "/databases/"; webSettings.setDatabasePath(databasePath); webSettings.setGeolocationEnabled(true); webSettings.setSaveFormData(true);
Pero al cargar la aplicación, en logcat puedo leer lo siguiente
- Twitter: recuperar el código PIN de la webview. Androide
- Cómo encajar una página web en la pantalla de Android (webview)?
- Cómo jugar auto iframe youtube en webview android
- Obtener datos POST desde la vista Web de Android
- ¿Cómo puedo panoramizar una webview en google glass
10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) no hay tabla: CacheGroups 10-15 01: 21: 43.815: D / WebKit (14278): ERROR: 10-15 01: 21: 43.815 : D / WebKit (14278): Almacenamiento de caché de la aplicación: no se pudo ejecutar la instrucción "DELETE FROM CacheGroups" error "no such table: CacheGroups" 10-15 01: 21: 43.815: D / WebKit (14278): external / webkit / Source /WebCore/loader/appcache/ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: executeSQLCommand (const WTF :: String &) 10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) no such : C: 10/30 01: 21: 43.815: D / WebKit (14278): Almacenamiento de caché de aplicaciones: no se pudo ejecutar la instrucción "BORRAR DE cachés" Error "no such tabla: Caches" 10-15 01: 21: 43.815: D / WebKit (14278): external / webkit / Source / WebCore / loader / appcache / ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: EjecutarSQLCommand (const WTF :: String &) 10-15 01: 21: 43.815: E / SQLiteLog (14278): (1) ninguna tabla: Orígenes 10-15 01: 21: 43.815: D / WebKit (14278): ERROR: 10-15 01: 21: 43.815: D / WebKit (14278): Almacenamiento de caché de aplicaciones: falló ejecutar la instrucción "DELETE FROM Origins" error "no such table: Origins" 10-15 01 : 21: 43.815: D / WebKit (14278): external / webkit / Source / WebCore / loader / appcache / ApplicationCacheStorage.cpp (558): bool WebCore :: ApplicationCacheStorage :: executeSQLCommand (const WTF :: String &) 10-15 01 : 21: 43.815: E / SQLiteLog (14278): (1) ninguna tabla: DeletedCacheResources
Y, obviamente, AppCache no funciona = / ¿Estoy haciendo algo mal? ¡Gracias!
- Almacenamiento de un WebView para la navegación sin conexión
- Mostrar mensaje para conocer la ubicación
- Múltiples WebViews en ScrollView dando problemas (Android)
- Textarea no envuelve texto en WebView en Android
- Phonegap Android Internet no funciona
- Ocultar / Mostrar la barra de herramientas cuando se desplaza el fragmento en las pestañas
- Webview no admite la caja flexible en Android Jellybean
- ¿Qué significa "enable DOM storage API"?
Configure db antes de appcache y domstore, configure cualquier "parámetro" como set * Path () / set * Size () antes de set * Enabled ()
Al lado de eso, podría no ser una buena idea si apila dos cachés gestionados independientemente entre sí cuando se usa
GetActivity (). GetApplicationContext (). GetCacheDir (). GetAbsolutePath ()
Como el directorio donde el gestor de caché de la webview debería almacenar sus datos
Cuando el administrador de caché de la actividad decide eliminar un archivo creado por el gestor de caché de la vista web, el gestor de caché de la vista web no es notificado y puede depender más de su existencia
Podría funcionar durante mucho tiempo, pero algún día podría convertirse en un error alterno que es difícil de identificar
Estos son los ajustes que funcionan para mí:
CookieSyncManager.createInstance(contextForDialog); webView = (WebView) findViewById(R.id.webView1); WebSettings settings = webView.getSettings(); settings.setRenderPriority(RenderPriority.HIGH); settings.setCacheMode(WebSettings.LOAD_DEFAULT); settings.setSaveFormData(true); settings.setLoadsImagesAutomatically(true); settings.setJavaScriptEnabled(true); settings.setDatabaseEnabled(true); settings.setDomStorageEnabled(true); settings.setAppCacheMaxSize(1024*1024*1024*8); String sDataPath = context.getDir("database", Context.MODE_PRIVATE).getPath(); settings.setDatabasePath(sDataPath); settings.setAppCachePath(sDataPath); settings.setAllowFileAccess(true); settings.setAppCacheEnabled(true); settings.setAllowFileAccess(true); settings.setGeolocationEnabled(true); settings.setSavePassword(true); webView.setFocusable(true); webView.setFocusableInTouchMode(true); settings.setDatabaseEnabled(true); settings.setAllowContentAccess(true); settings.setLoadsImagesAutomatically(true); webView.addJavascriptInterface(this, "AndroidInterface"); WebView.setWebViewClient(new routeNavClient()); webView.setWebChromeClient(new webChromeClient()); CookieManager c = CookieManager.getInstance(); c.setAcceptCookie(true);