在phonegap IOS上重新启动应用程序后清除本地存储?
Posted
技术标签:
【中文标题】在phonegap IOS上重新启动应用程序后清除本地存储?【英文标题】:Localstorage cleared after restarting the application on phonegap IOS? 【发布时间】:2013-04-10 10:27:31 【问题描述】:我正在尝试在本地存储中缓存 JSON 数据,以便在没有互联网连接时加载它。它工作正常,但是当我重新启动应用程序时,我认为本地存储已清除
这是我的代码:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
document.addEventListener("offline", function()
alert("No internet connection");
$.each(JSON.parse(localStorage.getItem('foo')), function(key, val)
if(!(val.php))val.php=0;
$('ul.get-mertchant').append('<li> <a href="azkadenya.html?id=' + val.nid + '&nop='+ val.php +'" class="li-link"><div class="circle-img"><img src="'+ val.logo + '" /></div><div class="merchant-info"><h1>'+ val.node_title +'</h1><p>You Have '+ val.php +' Binggz</p></div><div class="more-icon"></div></a> </li>');
);
, false);
$.getJSON('mywebsite/views/services_merchant_mobile', function(data)
localStorage.setItem('foo', JSON.stringify(data));
var items = [];
$.each(JSON.parse(localStorage.getItem('foo')), function(key, val)
if(!(val.php))val.php=0;
$('ul.get-mertchant').append('<li> <a href="azkadenya.html?id=' + val.nid + '&nop='+ val.php +'" class="li-link"><div class="circle-img"><img src="'+ val.logo + '" /></div><div class="merchant-info"><h1>'+ val.node_title +'</h1><p>You Have '+ val.php +' Binggz</p></div><div class="more-icon"></div></a> </li>');
);
)
怎么了??
【问题讨论】:
【参考方案1】:从 ios 5.1 开始,Apple 决定将本地存储设为临时区域。如果您需要在 iOS 5.1 上进行持久存储,请使用 PhoneGap 的 File API。这里有几个链接可以了解这个问题。
http://community.phonegap.com/nitobi/topics/phonegapbuild_localstorage_on_ios_5_1
http://docs.phonegap.com/en/2.6.0/cordova_storage_storage.md.html#Storage
Apple 也不鼓励您使用本地存储。 iOS PhoneGap app rejected because of the use of localStorage
【讨论】:
第一个链接的后续行动(localstorage_on_ios_5_1 上的社区帖子)表示该问题已在 PhoneGap 1.6 中解决。链接的 cordova_storage 文档没有表明 localStorage 不是持久的。 “应用被拒绝”链接是关于应用数据被备份到 iCloud 的(错位)问题,而不是在应用重新启动时它会持续存在的问题。我还有一些关于“localStorage 是保存在‘缓存’位置还是‘数据’位置”和“iOS 何时从缓存中删除内容”的问题,但我没有看到 localStorage 通常在应用重启时丢失的证据。 在使用 Cordova 6.1.1 时,android 也会出现同样的问题。 cordova.apache.org/docs/en/latest/cordova/storage/storage.htmllocalStorage
被列为存储持久数据的选项。您的资源已过时/已死。是否仍然存在 localStorage 可能被删除的情况?以上是关于在phonegap IOS上重新启动应用程序后清除本地存储?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用phonegap localnotification插件清除通知栏上的项目
可以从 iOS phonegap 插件启动 index.html
iOS 11 上的 Phonegap / Cordova 选择选项后再次显示弹出窗口