ninoha.com

programming clip

[Android] localStorageがうまく動かない

AndroidStudioでWebViewを使ったHTML5アプリを作ってみたものの

アプリ終了→起動するとlocalStorageのデータが消えてる・・・。

OSのバージョンの問題なのかコードが悪いのか今でもさっぱりわからないものの、対策した方法をメモ。

 

自分なりの結論。

HTML5のlocalStorageとAndroidのPrefarenceに二重保存!

 

1.保存

localStorageに保存しつつ、Android側の関数を呼び出してプリファレンスにも保存。

 

2.読込

localStorageから読みつつ、データが空だったらAndroid側の関数を呼び出してプリファレンスから読み込む。

 

 

◆データ読み書き用クラス

◆ActivityクラスでWebViewにセットする部分
webview.addJavascriptInterface(new Substorage(this), “SubStorage”);

◆JavaScriptからの呼び出し部分
SubStorage.save(“mydata”, str);
var str= SubStorage.load(‘mydata’);