【Kotlin/Android Studio】WebViewのキャッシュを操作する方法!

【Kotlin/Android Studio】WebViewのキャッシュを操作する方法!

この記事からわかること

  • Kotlin/Android StudioWebView使い方
  • キャッシュ操作する方法
  • キャッシュをリセット
  • キャッシュの上限容量を指定するには?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

公式リファレンス:WebSettings

環境

WebViewでキャッシュを操作する方法

AndroidのWebViewではキャッシュ機能も存在します。通常のブラウザアプリのように同一のURLに対してアクセスされたときに画像、JS、CSSなどの静的ファイルをローカルストレージに保存し、再ダウンロードを防ぎ、パフォーマンスを向上させる仕組みが備わっています。

キャッシュの設定はWebSettingsクラスで管理されています。キャッシュのモードを管理するcacheModeプロパティはデフォルトでLOAD_DEFAULTが設定されています。これはキャッシュされたリソースが利用可能で期限切れでない場合はそれを使用し、そうでない場合はネットワークからリソースを読み込むようになっています。

WebSettingsインスタンスはWebViewからgetSettingsメソッドを使用して取得します。

val webSettings: WebSettings = myWebView.getSettings()
print(webSettings.cacheMode)

キャッシュを無効にする

キャッシュ機能を使用しないようにするにはcacheModeプロパティにLOAD_NO_CACHEを渡します。

val webSettings: WebSettings = myWebView.getSettings()
webSettings.cacheMode = WebSettings.LOAD_NO_CACHE

キャッシュを有効にする

キャッシュを明示的に有効するにはcacheModeプロパティにLOAD_DEFAULTを渡します。デフォルトでこの値になっているのであえて設定する必要はないですが切り替えたいときなどに戻す際に指定します。

webSettings.cacheMode = WebSettings.LOAD_DEFAULT

またLOAD_CACHE_ELSE_NETWORKを指定するとキャッシュの有効期限が切れていても強制的にキャッシュを使用するようにすることも可能です。

webSettings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK

キャッシュを削除する

キャッシュを削除するにはclearCacheメソッドにtrueを渡します。

myWebView.clearCache(true)

キャッシュの上限容量を指定する

キャッシュの上限容量を指定するにはsetAppCacheMaxSizeメソッドに容量を渡します。例えば20MBにしたいなら20 * 1024 * 1024とします。

// キャッシュの上限容量を指定(ここでは20メガバイト)
webSettings.setAppCacheMaxSize(20 * 1024 * 1024)

非推奨になったAPI

Android13から以下のAPIは非推奨になったようです。

// キャッシュを有効にする
webSettings.setAppCacheEnabled(true)
// キャッシュが保存されるパスを設定(アプリのキャッシュディレクトリを使用する例)
webSettings.setAppCachePath(getApplicationContext().getCacheDir().getPath())

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

Search Box

Sponsor

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index