2012-03-12 18 views
17

私は、PhoneGapで動作する私のアプリケーションで1つの値を保存するためにlocalstorageを使用していましたが、Appleが新しいiOS 5.1をリリースした時点で、私のアプリケーションは値を保存しません。Phonegap iOS 5.1およびlocalStorage

誰もこの問題を解決する方法を知っていますか?

ありがとうございます!

編集:

window.localStorage.setItem("login", $('#login').val());

私は値を保存するためにそれを使用し、私は値を読み取るためにそれを使用します:

function onDeviceReady() { 
    var login = window.localStorage.getItem("login"); 

    if (login != null) { 
     $('#login').val(login); 
    } 
} 

しかし、私、私は私が使っていたコードを置きますアプリケーションを閉じると、値は保存されません。

+0

コードはありますか? –

+0

投稿を編集します:)ありがとう! – chemitaxis

答えて

23

この問題について話しているphonegapグループに大きなスレッドがありました。基本的には、localStorageは一時的なアイテムとして扱われるため、いつでも削除することができます。仕事に非常に賢い人がいることを恐れないでください!ここhttps://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

コードだ - -

がここにスレッドのiOSの5でhttp://pastebin.com/5881768B

+0

これはPhoneGap 3でもまだ有効ですか? –

+1

@ScottCはい。パッチは3.0に追加されていますので、これ以上は何もする必要はありません。 –

8

、のlocalStorageは、Appleによって、デフォルトでは永続しました。 iOS 5.1では、localstorageが一時フォルダになりました。これは、ストレージが制約されていたときにいつでもOSによって削除される可能性があります。 iOS 6では、localstorageはオプションで永続的なフォルダに設定され、設定にフラグが設定されていました。

PhoneGap 2.0はiOS 5.1をターゲットにし、iOSではなくても永続性を提供するプラグインメカニズムを提供しました。

iOS 6とphonegap 2.1では、iOSバージョンが5.1の場合にのみプラグインを使用しようとしましたが、フォルダを保持するためのiOSネイティブメカニズムに戻ります。

しかし、iOS 6ではlocalstorageフォルダが最初に削除され、データが保存されるバグがあります。https://issues.apache.org/jira/browse/CB-1535 バグレポートにもパッチがあります。しかし、PhoneGapのリリース版の一部になる予定はまだありません。パッチを手動で適用する必要があります。

+0

これは、ユーザーがiOS 5.1を使用していてもPhoneGapの最新バージョンで使用できますか? LocalStorageはこのパッチを適用し続けますか? – jocull