我在开发一个使用Webview显示数据的Android应用程序时面临着巨大的问题。我在webview中使用的网站使用HTML 5的localStorage API。
要启用此功能,我已将webview设置设置如下:
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
所以localStorage API可以运行,但是当我关闭应用程序(并终止进程)时,localStorage会被完全删除,当我重新加载它时,我的所有数据都会丢失。
我的问题很简单:即使关闭应用程序,如何使Web视图的DomStorage持续存在?
感谢您将来的所有答案。
答案 0 :(得分:10)
您是否设置了DatabasePath?如果您没有设置调用
,Android默认情况下不知道在哪里保存DOMDatabasewebview.getSettings().setDatabasePath()
答案 1 :(得分:9)
// 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/");
答案 2 :(得分:6)
您必须启用数据库并设置其路径:
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDatabasePath();
webSettings.setDomStorageEnabled(true);
第一行让我感到很长一段时间......
答案 3 :(得分:0)
以上帖子混合了两个不同的概念:
要在会话关闭后使数据保持不变,请确保您没有使用(在您的javascript上)sessionStorage
DOMStorage和数据库存储是两回事。数据库存储不是HTML5的一部分:http://www.tutorialspoint.com/html5/html5_web_sql.htm
DOMStorage与HTML5更相关,并且包括会话存储,当您关闭浏览器时,会话存储将会消失。通过搜索“DOM存储”的“本地存储”,你会发现更多的点击。
http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/
因此,要启用DOMstorage,您只需要: webSettings.setDomStorageEnabled(真);
答案 4 :(得分:0)
此问题的回答为in this post,其中包含Android v4.1.1的更新。