現在、Phonegap 1.4.1 を使用してモバイル アプリに取り組んでいます。iOS (現在 5.1 を使用) では、アプリは localStorage からすべてのデータをロードしません。
アプリを初めて使用するときは、次のように localStorage にフラグを設定します。
window.localStorage.setItem("myFlag", "true");
「ItemA」「ItemB」「ItemC」も同様に設定します。これらのキーと値のペアはそれぞれ、アプリの使用中に異なるタイミングで設定されるため、設定される順序は定義されていません。
私の問題はこれです:
最初に既存のコピーを削除せずにアプリを再インストールすると、アプリには「MyFlag」、「ItemB」、または「ItemC」が表示されなくなり、「ItemA」が表示されます。アプリのデータ ファイルをエクスポートし、 file__0.localstoragewindow.localStorage.length
ファイルを SQLite インスペクター (アプリ ストアのアプリ) で調べたところ、4 つのキーと値のペアがすべて表示されます。
iOS 5.1+ は localstorage を Cache フォルダに移動したので、ここで説明されているように file__0.localstorage ファイルのバックアップを実装しました。基本的に、アプリの一時停止と終了時に localstorage db を Documents フォルダーにコピーし、webViewDidStartLoad の実行時に Cache フォルダーに戻します。この部分は問題なく動作しているので、手順が問題を引き起こしているとは思いません (その手順を追加する前にアプリに問題の症状がありました)。