在 Android 的 WebView 中,“清缓存”一般有几种不同层级,取决于你想清的是哪一类数据。下面按常见场景给你说明。
WebView webView = findViewById(R.id.webview);
// 清除缓存(API 18 以上推荐方式)
webView.clearCache(true);
// 清除历史记录
webView.clearHistory();
⚠️ 注意:
clearCache(true) 会清除 磁盘缓存(图片、JS、CSS 等)clearHistory() 只是清除后退记录,不删缓存// 方式 1(推荐,API 21+)
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(null);
cookieManager.flush();
// 方式 2(旧版本兼容)
CookieSyncManager.createInstance(context);
CookieManager.getInstance().removeAllCookie();
webView.getSettings().setDomStorageEnabled(true);
webView.evaluateJavascript("localStorage.clear(); sessionStorage.clear();", null);
或者:
webView.clearFormData(); // 表单数据
WebView webView = new WebView(context);
webView.clearCache(true);
webView.clearFormData();
webView.clearHistory();
webView.clearMatches();
如果应用中有多个 WebView,建议 统一清理:
CookieManager.getInstance().removeAllCookies(null);
WebViewDatabase.getInstance(context).clearUsernamePassword();
WebViewDatabase.getInstance(context).clearHttpAuthUsernamePassword();
如果你是想清 整个系统的 WebView 缓存(不止你 App):
✅ 调试时:
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
✅ 发布版本:
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
| 类型 | 方法 |
|---|---|
| 网页缓存 | clearCache(true) |
| Cookie | CookieManager.removeAllCookies() |
| localStorage | evaluateJavascript |
| 历史记录 | clearHistory() |
| 全部 | 组合清空 |
如果你说的是 某个具体场景(比如:H5 页面不刷新、登录态清不掉、微信/小程序 WebView),可以告诉我,我给你更精准的方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。