WebView的LOAD_NO_CACHE设置仍然会将文件保存到磁盘吗?

10
尽管使用了webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);,WebView仍会把几MB的文件保存到缓存中。是否有一种方法可以真正禁用缓存?谢谢。

我认为该设置是为页面的第二次加载而设的。我从setCacheMode API中获得了这个:缓存的使用方式基于导航选项。对于普通的页面加载,会检查缓存并根据需要重新验证内容。当导航返回时,不会重新验证内容,而是直接从缓存中提取内容。此函数允许客户端覆盖此行为。 - Ashok Goli
2个回答

2

目前似乎没有完全禁用缓存的可靠方法。

最好的办法是忽略缓存,每次强制webView加载新页面或刷新页面。

如果有人担心占用缓存大小,可以限制缓存大小。有很多方法可以做到这一点,请查看我的相似答案。希望这个答案会给出一些提示。

但有两件事对我来说看起来很有前途,

1)在加载页面时利用头部参数,

注意:适用于Android API 8+。

    Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
    noCacheHeaders.put("Pragma", "no-cache");
    noCacheHeaders.put("Cache-Control", "no-cache");
    view.loadUrl(url, noCacheHeaders);

2) 如果你有一个将要加载到webView中的html页面,你可以在HTML页面中添加以下meta标签。

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

希望这能帮助到你。

-1

4
这是关于HTML5应用程序缓存功能的,而不是缓存下载内容。 - mparaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接