yakisakeの日記

ITエンジニアの日記です

AndroidのWebViewでおかしな挙動

AndroidのWebViewでローカルのHTMLファイルを読み込んで
アンカーに移動してたりしたら変な挙動したのでメモ。

loadURLでassets内のHTMLファイルを読み込んだ後に
JavaScriptでlocation.hashを実行してアンカーに移動してました。

4.0系では問題なかったんですが、2.3系で2度目以降の読み込みで
正常に移動しない場合が結構ありました。

2度目というのは画面をリリースした後なのでなんでじゃろ?と。

で、根本の原因はキャッシュでしたと。
WebViewコントロール単体でキャッシュ持ってるのではなく
裏のWebKitがキャッシュとかを管理してるらしくこれが悪影響になってたと。

なので、loadURLする前にキャッシュ消して対応しました。
が、

webview.getSettings().setCacheMode

でキャッシュ利用しないっていう風にしても良かったな。
と書いてて思いました。

以上です。