在Android的WebView中,DomStorage
,Database
和AppCache
之间的区别是什么?
我对这三个设置感到困惑。现在我需要一个WebView实例,我可以在JavaScript中使用localStorage
。
以下是一个例子:
if (localStorage['avatar_user_' + nick]) {
obj.src = localStorage['avatar_user_' + nick];
} else {
var url = avatar_path + nick + '/avatar.jpg';
new Oauth().img("jpeg", url,
function(data) {
if (data != '') {
obj.src = data;
localStorage['avatar_user_' + nick] = data;
}
}, function() {}
);
}
在上面的代码中,我真的从网上获取了图像,它将在下次需要时从localStorage加载,但存储只能持续应用程序的生命周期。
如果我重新启动我的应用,那么图像将再次从网络加载。
我按如下方式设置我的WebView:
mWebSettings.setAppCacheEnabled(true);
mWebSettings.setDomStorageEnabled(true);
mWebSettings.setDatabaseEnabled(true);
mWebSettings.setDatabasePath("file:///data/data/com.xxx/databases");
但是当我在localStorage中添加内容时,我可以看到file:///data/data/com.xxx/databases
中的文件保持不变。
所以我的问题是如何让我的网页存储数据并在应用关闭后保留它们?
如果我在应用中使用多个WebView并将DatabasePath
指向同一个文件夹,这是否重要?
如果你能告诉我DomStorage
,Database
和AppCache
之间的区别,那就更好了!
答案 0 :(得分:0)
问题解决了!我只是犯了一个错误,我使用file:///data/data/com.xxx/databases
作为数据库路径,它应该只有/data/data/com.xxx/databases
而没有file://
。
仍在等待DomStorage
,Database
,AppCache
之间的不同答案。
答案 1 :(得分:0)
我不是百分之百肯定,但DomStorage似乎是WebStorage的同义词。这是一种将客户端站点上的数据存储为键=值对的技术 http://diveintohtml5.info/storage.html
数据库意味着将启用客户端SQL数据库 http://www.html5rocks.com/en/tutorials/webdatabase/todo/
AppCache是一种让整个网站可供离线使用的技术 http://appcachefacts.info/