[英]Android WebView not caching HTTPS content
我有一個單頁webapp,它顯示在Android WebView(Android Jelly Bean)中。 這是一個不錯的大小,所以我想盡可能多地利用緩存。
如果應用程序通過HTTP提供,則緩存填充到大約8兆,並且在應用程序重新啟動時,Web內容幾乎立即從緩存加載(未觀察到網絡流量)。
但是,如果應用程序是通過HTTPS提供的,則只使用一小部分緩存(幾百K),並且在應用程序重新啟動時,將再次從服務器請求所有Web資產(JS / CSS等)。 由於我沒有root設備且文件看起來已被重命名(例如webviewCacheChromium / data_0等),因此很難確切地看到正在緩存的文件。
我嘗試設置'Cache-Control:max-age'響應標頭(因為我相信這可以強制在舊瀏覽器中使用https緩存),但它沒有任何區別。
我找不到任何暗示WebView默認不會緩存https內容的內容。 我相信大多數現代瀏覽器都是這樣的 - 我希望Android WebView能夠做到這一點。
我在這里錯過了什么嗎? 是否需要告知WebView緩存https內容?
提前致謝,
尼爾。
排序問題。
萬一以后任何人都會遇到同樣的問題....
由於SSL錯誤(不幸的是,它被應用程序中的其他地方吞沒)導致應用程序未正確緩存。 基本上,如果您沒有正確設置SSL證書,您將看到這一點。
要檢查此擴展WebViewClient.onReceivedSslError()
並記錄任何錯誤。
我們有兩個不同的錯誤,因為我們的SSL證書沒有正確設置 - 一旦修復,應用程序就會按預期緩存。
希望這可以節省一些人經歷的浪費時間:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.