Webview不会清除历史记录,缓存等

时间:2019-12-23 11:29:16

标签: android caching webview clear

我有一个具有本机框架的android应用程序,其内容本身以web格式和webview呈现。该应用程序的含义是允许用户使用预定义的方式使用设备 可能需要验证的服务。

当用户完成任务后,当我尝试清理Webview缓存时,Webview将记住所有内容,例如登录凭据到位,历史记录保留等。

我尝试了以下操作,但没有成功,这是我所缺少的?

(wvfo,如果每个服务都在其中使用webview的覆盖片段)

wvfo.getWebView().clearCache(true);
wvfo.getWebView().clearFormData();
wvfo.getWebView().clearHistory();
wvfo.getWebView().clearMatches();
// wvfo.getWebView().setWebViewClient(new WebViewClient());
// wvfo.loadUrl("javascript:document.open();document.close();");
CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();  
wvfo.destroyWebview();

有什么主意,这是怎么了?为什么历史不被清除?

预先感谢

1 个答案:

答案 0 :(得分:0)

是的,您还必须删除webview默认数据库。检查以下代码。

static void clearWebViewAllCache(Context context, WebView webView) {
try {
AgentWebConfig.removeAllCookies(null);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
context.deleteDatabase("webviewCache.db");
context.deleteDatabase("webview.db");
webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();
clearCacheFolder(new File(AgentWebConfig.getCachePath(context)), 0);
} catch (Exception ignore) {
//ignore.printStackTrace();
if (AgentWebConfig.DEBUG) {
  ignore.printStackTrace();
}
}
}

我希望这会对您有所帮助。

愉快的问候...