【问题标题】:Android WebView not caching HTTPS contentAndroid WebView 不缓存 HTTPS 内容
【发布时间】:2014-02-21 12:19:48
【问题描述】:

我有一个单页 web 应用程序,它显示在 Android WebView (Android Jelly Bean) 中。这是一个不错的大小,所以我想尽可能多地利用缓存。

如果应用通过 HTTP 提供服务,缓存会填充到大约 8 兆,并且在应用重新启动时,网络内容几乎会立即从缓存中加载(未观察到网络流量)。

但是,如果应用程序通过 HTTPS 提供服务,则仅使用一小部分缓存(几百 K),并且在应用程序重新启动时,所有 Web 资产(JS / CSS 等)都从再次服务器。由于我没有根设备并且文件看起来已被重命名(例如 webviewCacheChromium/data_0 等),因此很难准确查看正在缓存的文件。

我尝试设置 'Cache-Control: max-age' 响应标头(因为我相信这会在旧版浏览器中强制使用 https 缓存),但没有任何区别。

我找不到任何暗示默认情况下 WebView 不会缓存 https 内容的信息。我相信大多数现代浏览器都是这样运行的——我希望 Android WebView 也能做到这一点。

我在这里遗漏了什么吗?是否需要告知 WebView 缓存 https 内容?

提前致谢,

尼尔。

【问题讨论】:

    标签: android caching webview


    【解决方案1】:

    对问题进行了排序。

    以防万一将来有人偶然发现同样的问题....

    事实证明,由于 SSL 错误(不幸的是,该错误被应用程序的其他地方吞没了),该应用程序没有被正确缓存。基本上,如果您没有正确设置 SSL 证书,您会看到这样的结果。

    检查此扩展 WebViewClient.onReceivedSslError() 并记录任何错误。

    我们遇到了几个不同的错误,因为我们的 SSL 证书设置不正确 - 一旦这些问题得到修复,应用就会按预期缓存。

    希望这可以节省我浪费的时间:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多