无法清除Webview中的登录信息

时间:2015-05-22 10:59:32

标签: android android-webview webviewclient

我最近使用webview登录了Microsoft WAAD帐户,再次打开应用程序以进行测试我没有看到Microsoft的登录页面但是我会在直接登录后进入下一页。

我试过这些东西:

webView.clearCache(true);
webView.clearFormData();
webView.clearHistory();
webView.clearSslPreferences();
getApplicationContext().deleteDatabase("webview.db");
getApplicationContext().deleteDatabase("webviewCache.db");

getBaseContext().deleteDatabase("webview.db");
getBaseContext().deleteDatabase("webviewCache.db");

但我的问题尚未解决。还有什么要做的吗?

问候。

1 个答案:

答案 0 :(得分:1)

你做的一切都还可以,但你也需要删除cookies

CookieSyncManager.createInstance(getActivity());
CookieManager cookieManager = CookieManager.getInstance();
if(Build.VERSION.SDK_INT >= 21) {
     cookieManager.removeAllCookies(new ValueCallback<Boolean>() {
     @Override
         public void onReceiveValue(Boolean aBoolean) {

         }
     });
}
else{
     cookieManager.removeAllCookie();
}

这就是你将它们全部禁用的方式

    CookieSyncManager.createInstance(getActivity());
    CookieManager cookieManager = CookieManager.getInstance();
    if(Build.VERSION.SDK_INT >= 21) {
        cookieManager.removeAllCookies(new ValueCallback<Boolean>() {
            @Override
            public void onReceiveValue(Boolean aBoolean) {

            }
        });
    }
    else{
        cookieManager.removeAllCookie();
    }
    cookieManager.setAcceptCookie(false);

    WebView webview = new WebView(getActivity());
    WebSettings ws = webview.getSettings();
    ws.setSaveFormData(false);
    ws.setSavePassword(false); // Not needed for API level 18 or greater (deprecated)