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.