PhoneGap/Cordovaを使用してハイブリッドアプリ(iOSおよびAndroidのみ)用)を開発しており、HTML5localStorageを使用してオフラインアクセス用のコンテンツを保存したいと考えています。
http://caniuse.com/#search=localStorage は言う-「iOS5および6では、localStorageデータはOSによって時折クリアされる可能性のある場所に保存されます。」
IOS 7(およびそれ以降)のWebビューの状況はどのようなものですか?どのような場合にlocalStorageが持続するか、(OSまたはユーザーによって)クリアされますか?
アプリを更新するとlocalStorageがクリアされますか?
ユーザーがSafariでブラウザの履歴をクリアするのはどうですか?それはWebビューにも当てはまりますか?
FilsシステムのどこにlocalStorageが作成されるかを心配する必要がありますか(または制御することもできますか)。 iCloudにバックアップしてはいけないことを理解しています。
デバイス(iPad)を入手し、ファイルシステムを確認すると、localStorageファイルがアプリサンドボックス内の〜/ Library/Cachesにあることがわかります。下の画像を参照してください。
ドキュメントから:
https://developer.Apple.com/icloud/documentation/data-storage/index.html 再ダウンロードまたは再生成できるデータは、に保存する必要があります。/Library/Cachesディレクトリ。 Cachesディレクトリに配置する必要のあるファイルの例には、データベースのキャッシュファイルや、雑誌、新聞、地図のアプリケーションで使用されるようなダウンロード可能なコンテンツが含まれます。
私は単にデータを設定するためにこれを行っています:
localStorage.setItem('foo','this is the FOO value');
localStorage.setItem('bar','and this is the BAR value');
コルドバを使用している場合、その問題はiOS5およびiOS6でもかなり前に修正されています。最新バージョンのコルドバを使用していても、心配する必要はありません。
それでもCordova-iOSv4で問題が発生する場合は、NativeStorageプラグインを試してください。 https://www.npmjs.com/package/cordova-plugin-nativestorage 。
Android共有設定やiOSNSUserDefaultsなどのプラットフォーム機能を実装する関数を設定、配置、取得して、データストアを可能な限り安全にします。
cordova plugin add cordova-plugin-nativestorage
NativeStorage.putObject("reference_to_value",<object>, <success-callback>, <error-callback>);
NativeStorage.getObject("reference_to_value",<success-callback>, <error-callback>);
最善の策は、NativeStorageプラグインを使用することです。
https://www.npmjs.com/package/cordova-plugin-nativestorage
あなたの質問に答えるには:
localStorage
データはファイルシステムのキャッシュディレクトリに保持され、キャッシュはOSによって頻繁にクリーンアップされます(たとえば、デバイスのディスク容量が少ない場合)。