Android-关闭应用程序后使Webview存储持久化

Android-关闭应用程序后使Webview存储持久化,android,webview,local-storage,persistent,Android,Webview,Local Storage,Persistent,我在开发一款使用网络视图显示数据的Android应用程序时面临着一个巨大的问题。我在webview中使用的网站使用HTML5的localStorage API 要启用此功能,我将webview设置如下: webview.getSettings().setDomStorageEnabled(true); webview.getSettings().setJavaScriptEnabled(true); 因此localStorage API可以工作,但当我关闭应用程序(并终止进程)时,localS

我在开发一款使用网络视图显示数据的Android应用程序时面临着一个巨大的问题。我在webview中使用的网站使用HTML5的localStorage API

要启用此功能,我将webview设置如下:

webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
因此localStorage API可以工作,但当我关闭应用程序(并终止进程)时,localStorage会被完全擦除,当我重新加载它时,所有数据都会丢失

我的问题很简单:即使关闭应用程序,如何使Webview的存储持久化


谢谢您以后的回答。

您设置了数据库路径吗?如果您不设置DOMDatabase,Android默认情况下不知道将其保存在哪里

webview.getSettings().setDatabasePath()

必须启用数据库并设置其路径:

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

第一行吸引了我很长时间…

上面的帖子混合了两个不同的概念:

若要在会话关闭后保持数据,请确保未使用(在javascript上)会话存储

DOMStorage和database storage是两种不同的东西。数据库存储不是HTML5的一部分:

DOMStorage与HTML5更为相关,它包括会话存储,根据设计,当您关闭浏览器时,会话存储将消失。通过搜索“本地存储”和“DOM存储”,您将找到更多的点击率

因此,要启用DOMstorage,您只需要:
webSettings.setDomStorageEnabled(true);

Android v4.1.1的更新解决了此问题。

我找到了解决方案,您需要设置数据库路径才能保存数据:webview.getSettings().setDatabasePath();你能分享一下你设置它的路径吗?我现在面临着同样的问题。我的答案解决了你的问题吗?有可能从java直接读取html5设置的本地存储变量吗?我在别处发现了这个问题,但似乎没有人有答案。在Andorid2.2中呢,无论它是否工作,因为对我来说在2.1中,它可以工作,但在2.2中不可以。如果使用此用法时出现“setDatabasePath deprecated”错误,则在chromium中,webkit浏览器将处理路径本身。注意,您只能调用setDatabase path一次,后续调用将被忽略。您需要终止应用程序以强制重新加载webkit(调用Activity.finish()将不能保证这一点)在任何后续通话生效之前
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDatabasePath();
webSettings.setDomStorageEnabled(true);