【问题标题】:Shared cache between two WebViews两个 WebView 之间的共享缓存
【发布时间】:2015-03-23 13:44:39
【问题描述】:

是否可以在多个 webview 之间启用缓存?这是场景:

  1. 创建带有 WebView 1 的 Activity A 以显示 xyz.com
  2. 稍后创建带有 WebView 2 的 Activity B 以再次显示 xyz.com

我尝试了webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);,但页面(我使用大型维基百科页面进行测试)仍然从网络重新加载,而不是使用缓存。

【问题讨论】:

    标签: android caching webview browser-cache


    【解决方案1】:

    根据documentation,应用程序中的所有 WebView 共享它们的缓存。

    但是,看起来 Wikipedia 总是以将响应标记为不可缓存的方式设置响应标头:

    Cache-Control:private, s-maxage=0, max-age=0, must-revalidate
    

    所以,我不认为您做错了什么,我也不认为您可以通过 Wikipedia 解决问题。尝试使用更“正常”缓存策略的不同网站,我相信您会看到 WebView 的缓存按预期工作。

    【讨论】:

    • 我想“我应该选择哪个页面进行测试......哦,维基百科只有静态内容,完美”
    • “根据文档,应用程序中的所有 WebView 共享它们的缓存。”您链接到的文档中没有任何内容说明这一点。它说“您的应用程序有自己的缓存、cookie 存储”,但要澄清它不与浏览器共享状态。不一定意味着应用程序中的所有 webview 都共享相同的缓存。
    • 如果您阅读 clearCache 方法的文档,它会说“清除资源缓存。请注意,缓存是每个应用程序的,因此这将清除所有使用的 WebView 的缓存”。跨度>
    • 赞成阐明其每个应用程序的基础并且所有 webview 都会受到影响
    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    相关资源
    最近更新 更多