如何从WebView清除登录凭据?

use*_*240 5 cookies android cache-control android-webview

我想清除应用程序数据,就像我可以从设置中做到这一点.当我登录到facebook或twitter时,我需要在WebView中清除登录信息,因为当我为以下每个用户登录一次时会自动使用相同的数据

我试试这个:http: //www.hrupin.com/2011/11/how-to-clear-user-data-in-your-android-application-programmatically

没用,登录信息仍然在浏览器中

我尝试重置应用:

Intent i = getBaseContext().getPackageManager()
             .getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

@Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        view.clearCache(true);

        if(b){
            Log.d("WEBVIEW", "onFinisghed b true");
        Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
        noCacheHeaders.put("Pragma", "no-cache");
        noCacheHeaders.put("Cache-Control", "no-cache");
        view.loadUrl(url, noCacheHeaders);
        b = false;
        }...
Run Code Online (Sandbox Code Playgroud)

大多数条目是指链接中描述的第一种方法,但它在我的情况下不起作用,任何想法?

Yoj*_*mbo 8

尝试清除浏览器cookie.登录凭据通常存储在浏览器cookie中,您可以通过调用来删除它

CookieManager.getInstance().removeAllCookie();
Run Code Online (Sandbox Code Playgroud)

更新:

CookieManager.getInstance().removeAllCookie()在Android SDK 21(Lollipop)中已弃用,并被CookieManager.getInstance()取代.removeAllCookies(ValueCallback回调).截至2018年11月,removeAllCookie() 仍按指定工作.此外,在较新的方法removeAllCookies(ValueCallback回调)中,如果您不希望收到有关已删除cookie的通知,则回调函数可以为null.因此,使用安全

CookieManager.getInstance().removeAllCookies(null)
Run Code Online (Sandbox Code Playgroud)

作为CookieManager.getInstance()的直接替代品.在Android SDK 21之后定位设备时removeAllCookie().

CookieManager文档在这里.