2013-04-10 11 views
7

Próbuję buforować dane JSON w localstorage, aby załadować je, gdy nie ma połączenia z Internetem. To działa dobrze, ale kiedy ponownie uruchomić aplikację myślę localStorage wyczyszczoneUsługa Localstorage została wyczyszczona po ponownym uruchomieniu aplikacji na systemie IOS?

Tu jest mój kodu:

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>'); 
}); 

}) 
} 

co jest nie tak ??

Odpowiedz

15

Począwszy od IOS 5.1 Apple zdecydowało się, aby lokalne miejsce przechowywania było tymczasowe. Jeśli potrzebujesz trwałego przechowywania na iOS 5.1, skorzystaj z API plików PhoneGap. Oto kilka linków, aby dowiedzieć się o problemie.

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

Jabłko discurages Ci korzystanie z pamięci lokalnej, jak również. iOS PhoneGap app rejected because of the use of localStorage

+3

Kontynuacja pierwszego linku (post społeczności na localstorage_on_ios_5_1) mówi, że problem został rozwiązany w PhoneGap 1.6. Dokumenty dołączone do cordova_storage nie wskazują na to, że localStorage nie jest trwały. Link "odrzucona aplikacja" dotyczy (nieuzasadnionych) obaw dotyczących danych aplikacji, których kopie zapasowe wykonano w iCloud, a nie problemów z jego utrwaleniem po ponownym uruchomieniu aplikacji. Mam kilka pytań na temat "czy program localStorage jest zapisany w lokalizacji" pamięci podręcznej "lub" lokalizacji danych "i" kiedy iOS usuwa elementy z pamięci podręcznej ", ale nie widzę dowodów, że localStorage jest zwykle tracony w aplikacji uruchom ponownie. – keturn

+0

Ten sam problem występuje z Androidem podczas korzystania z Cordova 6.1.1. – andreszs

+0

https://cordova.apache.org/docs/en/latest/cordova/storage/storage.html 'localStorage' jest wymienione jako opcja do przechowywania trwałych danych. Twoje źródła są nieaktualne/martwe. Czy nadal istnieje sytuacja, w której localStorage może zostać usunięty? –

Powiązane problemy