温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

安卓webview如何清除缓存

发布时间:2026-09-20 06:35:01 来源:亿速云 阅读:111 作者:小樊 栏目:移动开发

在 Android 的 WebView 中清除缓存,通常有以下几种方式,按使用场景来区分:


一、清除 WebView 自身缓存(推荐)

1. 清除缓存(包括本地存储、AppCache 等)

WebView webView = findViewById(R.id.webview);
webView.clearCache(true);
  • true:清除磁盘缓存(包括已加载的网页资源)
  • false:只清除内存缓存

2. 清除历史记录

webView.clearHistory();

3. 清除表单数据

webView.clearFormData();

二、清除 Cookie(非常重要)

WebView 登录态一般存在 Cookie 里:

CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(null); // API 21+
cookieManager.flush();

如果是旧版本:

CookieManager.getInstance().removeAllCookie();

三、清除 localStorage / sessionStorage(H5 缓存)

webView.getSettings().setJavaScriptEnabled(true);
webView.evaluateJavascript("localStorage.clear(); sessionStorage.clear();", null);

或者在加载页面前执行:

webView.loadUrl("javascript:localStorage.clear();");

四、清除 Application Cache / DOM Storage

WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(false);
settings.setDomStorageEnabled(false);

⚠️ 通常配合 clearCache(true) 一起使用。


五、彻底清空(组合方案,最常用)

webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();

CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();

webView.getSettings().setDomStorageEnabled(false);
webView.getSettings().setAppCacheEnabled(false);

六、注意事项

  1. 必须在 WebView 初始化之后调用
  2. 清除缓存后,下次加载网页会变慢(重新拉取资源)
  3. 如果页面用了 Service Worker,需要额外清除:
    webView.evaluateJavascript(
        "if (navigator.serviceWorker) { navigator.serviceWorker.getRegistrations().then(regs => regs.forEach(r => r.unregister())); }",
        null
    );
    
  4. Android 系统 WebView 的缓存目录在:
    /data/data/包名/cache/
    /data/data/包名/app_webview/
    

七、常见使用场景

  • 退出登录:清除 Cookie + Cache
  • 版本更新:清除 Cache
  • H5 页面异常:清除 Cache + localStorage

如果你有具体场景(比如“退出登录清不掉”“H5 更新不生效”),可以告诉我,我可以给你更针对性的方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手