我有一个具有本机框架的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();
有什么主意,这是怎么了?为什么历史不被清除?
预先感谢
答案 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();
}
}
}
我希望这会对您有所帮助。
愉快的问候...