web-dev-qa-db-ja.com

Phonegap iOS5.1およびlocalStorage

PhoneGapで動作するローカルストレージを使用してアプリに1つの値を保存していましたが、Appleが新しいiOS5.1をリリースしたとき、アプリは値を保存しません。

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

どうもありがとうございました!!!

編集:私が使用していたコードを入れました:

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

値を保存するために使用し、値を読み取るために使用します。

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

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

しかし、アプリを閉じると、値が保存されません。

17
chemitaxis

この問題について話しているphonegapグループに大きなスレッドがありました。基本的には、localStorageをいつでも削除できる一時的なアイテムとして扱うためです。非常に賢い人が働いていることを恐れないでください!

これがスレッドです- https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

ここにコードがあります- http://Pastebin.com/5881768B

23
Drew Dahlman

IOS 5では、ローカルストレージはAppleによってデフォルトで永続化されていました。 iOS 5.1では、localstorageは一時フォルダーになり、ストレージが制限されたときにOSが削除できるようになりました。 iOS 6では、localstorageは、設定にフラグが設定されたオプションの永続フォルダーになりました。

Phonegap2.0はiOS5.1を対象とし、iOSが提供していなくても永続性を提供するプラグインメカニズムを提供しました。

IOS6およびphonegap2.1では、iOSバージョンが5.1の場合にのみプラグインを使用し、フォルダーを永続化するためのiOSネイティブメカニズムにフォールバックしようとしました。

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

8
Lakshman Prasad