android webview local-storage persistent

Android: hacer que WebView DomStorage sea persistente después de cerrar la aplicación



local-storage (5)

¿Estableciste DatabasePath? Android no sabe dónde guardar la base de datos DOM por defecto, si no la configura llamando

webview.getSettings().setDatabasePath()

Me enfrenta un gran problema el desarrollo de una aplicación de Android que utiliza una vista web para mostrar los datos. El sitio web que estoy usando en la vista web usa localStorage API of HTML 5.

Para habilitar esta función, configuré la configuración de la vista web de esta manera:

webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setJavaScriptEnabled(true);

Entonces, la API de LocalStorage funciona pero cuando cierro la aplicación (y cancelo el proceso), localStorage se borra completamente y cuando lo vuelvo a cargar, todos mis datos se pierden.

Mi pregunta es simple: ¿cómo hacer DomStorage de una Webview persistente incluso cuando cerramos la aplicación?

Gracias por todas sus respuestas futuras.


Debe habilitar la base de datos y establecer su ruta:

webview.getSettings().setDatabaseEnabled(true); webview.getSettings().setDatabasePath(); webSettings.setDomStorageEnabled(true);

La primera línea me sorprendió por un tiempo ...


// Confimed on android 2.1 emulator // enable javascript localStorage WebSettings webSettings = myWebView.getSettings(); webSettings.setDomStorageEnabled(true); // localStorage // e.g., if your package is www.myapp.whatever; webSettings.setDatabasePath("/data/data/www.myapp.whatever/databases/");


La publicación anterior mezcla dos conceptos diferentes:

Para que sus datos persistan después de cerrar la sesión, asegúrese de que no está utilizando (en su javascript) sessionStorage

DOMStorage y el almacenamiento de la base de datos son dos cosas diferentes. El almacenamiento de la base de datos no es parte de HTML5: http://www.tutorialspoint.com/html5/html5_web_sql.htm

DOMStorage está más relacionado con HTML5 e incluye el almacenamiento de la sesión, que, por diseño, desaparecerá cuando cierre el navegador. Encontrará más visitas a través de la búsqueda de "almacenamiento local" que el "almacenamiento DOM".

http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/

Por lo tanto, para habilitar DOMstorage solo necesita esto: webSettings.setDomStorageEnabled (true);


Este problema fue respondido en esta publicación con una actualización para Android v4.1.1.