在 Android 的 WebView 中清除缓存,通常有以下几种方式,按使用场景来区分:
WebView webView = findViewById(R.id.webview);
webView.clearCache(true);
true:清除磁盘缓存(包括已加载的网页资源)false:只清除内存缓存webView.clearHistory();
webView.clearFormData();
WebView 登录态一般存在 Cookie 里:
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(null); // API 21+
cookieManager.flush();
如果是旧版本:
CookieManager.getInstance().removeAllCookie();
webView.getSettings().setJavaScriptEnabled(true);
webView.evaluateJavascript("localStorage.clear(); sessionStorage.clear();", null);
或者在加载页面前执行:
webView.loadUrl("javascript:localStorage.clear();");
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);
webView.evaluateJavascript(
"if (navigator.serviceWorker) { navigator.serviceWorker.getRegistrations().then(regs => regs.forEach(r => r.unregister())); }",
null
);
/data/data/包名/cache/
/data/data/包名/app_webview/
如果你有具体场景(比如“退出登录清不掉”“H5 更新不生效”),可以告诉我,我可以给你更针对性的方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。