2013-04-10 38 views
7

Tôi đang cố gắng lưu dữ liệu JSON vào bộ nhớ cục bộ để tải nó khi không có kết nối internet. Nó đang làm việc tốt nhưng khi tôi khởi động lại ứng dụng Tôi nghĩ rằng localStorage xóaXóa địa phương sau khi khởi động lại ứng dụng trên điện thoại iOS?

Đây là mã của tôi:

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

}) 
} 

gì là sai ??

Trả lời

15

Bắt đầu từ iOS 5.1 Apple đã quyết định lưu trữ cục bộ vùng tạm thời. Nếu bạn cần lưu trữ liên tục trên iOS 5.1, hãy sử dụng API tệp của PhoneGap. Dưới đây là một vài liên kết để tìm hiểu về vấn đề này.

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

của Apple discurages bạn sử dụng lưu trữ cục bộ là tốt. iOS PhoneGap app rejected because of the use of localStorage

+3

Việc theo dõi liên kết đầu tiên (bài đăng cộng đồng trên localstorage_on_ios_5_1) cho biết sự cố đã được giải quyết trong PhoneGap 1.6. Các tài liệu cordova_storage được liên kết không cung cấp dấu hiệu cho thấy localStorage không liên tục. Liên kết "bị từ chối ứng dụng" là về (không đúng chỗ) mối quan tâm của dữ liệu ứng dụng được sao lưu vào iCloud, không phải vấn đề với việc liên tục xảy ra khi khởi động lại ứng dụng. Tôi còn một số câu hỏi về "localStorage được lưu ở vị trí 'cache' hoặc vị trí 'dữ liệu' và" khi nào iOS xóa mọi thứ khỏi bộ nhớ cache ", nhưng tôi không thấy bằng chứng cho thấy localStorage thường bị mất trên ứng dụng khởi động lại. – keturn

+0

Vấn đề rất giống với Android khi sử dụng Cordova 6.1.1. – andreszs

+0

https://cordova.apache.org/docs/en/latest/cordova/storage/storage.html 'localStorage' được liệt kê dưới dạng tùy chọn lưu trữ dữ liệu liên tục. Nguồn của bạn đã lỗi thời/đã chết. Vẫn còn một tình huống mà localStorage có thể bị xóa? –

Các vấn đề liên quan