2013-04-10 18 views
7

インターネットに接続していないときにローカルのJSONデータをロードしてロードしようとしています。これは、正常に動作しているが、私は再起動したときに、私はのlocalStorageがここIOSのphonegapでアプリケーションを再起動した後にLocalstorageがクリアされましたか?

をクリアだと思うアプリは私のコードです:

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

}) 
} 

何が間違っています?

答えて

15

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

アップルは、同様に、ローカルストレージを使用してからあなたをdiscurages。 iOS PhoneGap app rejected because of the use of localStorage

+3

最初のリンク(localstorage_on_ios_5_1のコミュニティ投稿)のフォローアップでは、PhoneGap 1.6で問題が解決されたとのことです。 cordova_storage docsリンクは、localStorageが永続的ではないことを示すものではありません。 「アプリが拒否されました」というリンクは、アプリデータがiCloudにバックアップされているという懸案事項です。アプリの再起動によって永続する問題はありません。 「localStorageが 'キャッシュ'または 'データ'の場所に保存されている」と「iOSがキャッシュから何かを削除するのはいつですか」という疑問が残っていますが、通常はlocalStorageがアプリで失われているという証拠は表示されません再起動。 – keturn

+0

Cordova 6.1.1を使用している場合、Androidで同じ問題が発生します。 – andreszs

+0

https://cordova.apache.org/docs/en/latest/cordova/storage/storage.html 'localStorage'は永続データを保存するオプションとしてリストされています。あなたのソースは古い/死んでいます。 localStorageが削除される可能性のある状況はまだありますか? –

関連する問題