質問: スマホサイトのWebviewを使用して簡単なゲームコンテンツを作成しているのですが、 ユーザー情報(スコアなど)をローカルストレージに保存をしておりました。 iOS、Android4.4以降は問題なく保存ができ、 2回目以降も過去の値を取り出したりできていたのですが、 Android4.0、4.1の標準ブラウザ、及びアプリ上のWebviewにおいては、 アプリを終了してしまうとローカルストレージの値がすべて消えてしまいました。 値の保存方法としては、WebサイトのフレームワークにAngular.jsを使用しておりましたので、 `ngStorage`を使用して値を保存しております。 回避方法として、`$cookie`を使用して、localstorageに保存した内容をcookieの方にも保持しておき、 ブラウザ起動時にlocalstorageにcookieから値をコピーするという方法も試してみたのですが、 Cookieの方も値が保存されたり、保存されなかったり動作が不安定な状態でした。 今回の不具合について色々調べていたところ、andoroid4.0系は、ローカルストレージのデータは RAMに保存されるため、アプリを落とすと消えてしまうという記事を見ました。 参考サイト:Webviewのlocalstorage また、CookieについてもAndroid4系はCookie保存にかなりタイムラグが発生するということでした。 参考サイト:Android WebViewの cookieではまった。 考えられる回避方法は大体試してみたと思うのですが、 何かこれらの状況を打破できるような方法は無いでしょうか? 検証を行った機種は下記になります。 HTC J (Android4.0.2) どうか、お知恵をお貸しください。 よろしくお願いいたします。
回答: localstorageに保持した内容を、端末側に保持するのはどうでしょうか? アプリ終了時にPreference、またはSQLiteを使用し、値を保存 起動時にPreferenceまたは、SQLiteから値を取り出し、localstorageに値を入れる は、みたいな流れを想定しています。