【问题标题】:Localstorage cleared after restarting the application on phonegap IOS?在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>');
});

})
}

怎么了??

【问题讨论】:

    标签: ios cordova


    【解决方案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.html localStorage 被列为存储持久数据的选项。您的资源已过时/已死。是否仍然存在 localStorage 可能被删除的情况?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2015-09-02
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多