Android WebViewClient即使在注销后也会加载以前的用户数据
我正在使用以下方式将URL加载到我的Web视图中:Android WebViewClient即使在注销后也会加载以前的用户数据,android,webview,webviewclient,Android,Webview,Webviewclient,我正在使用以下方式将URL加载到我的Web视图中: mWebView.setWebviewClient(new WebViewClient); 此URL加载Http身份验证页。用户登录后,其凭据将保存在SharedReference中。此外,我还实现了注销功能,其中我清除了所有数据 当我再次尝试加载url时,它不会显示登录页面,并且会使用以前的凭据自动登录。如果在普通浏览器中加载URL,则登录页面加载良好。只有当我应用WebViewClient时,我才能获得上述行为 这是我的密码:- myWe
mWebView.setWebviewClient(new WebViewClient);
此URL加载Http身份验证页。用户登录后,其凭据将保存在SharedReference
中。此外,我还实现了注销功能,其中我清除了所有数据
当我再次尝试加载url时,它不会显示登录页面,并且会使用以前的凭据自动登录。如果在普通浏览器中加载URL,则登录页面加载良好。只有当我应用WebViewClient
时,我才能获得上述行为
这是我的密码:-
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl(url);
WebViewDatabase.getInstance(Details1.this).clearHttpAuthUsernamePassword();
WebViewDatabase.getInstance(Details1.this).clearUsernamePassword();
WebViewDatabase.getInstance(Details1.this).clearFormData();
myWebView.setWebViewClient(new WebViewClient())
我很困惑,在网上搜索了答案,但什么也找不到。我花了太多时间在这上面。正如这里提到的,这些方法都不起作用 最后,我通过在OnReceiveDhtPauthRequest中设置标志waslogeggin解决了这个问题,然后当我想清除登录凭据时,检查标志:
if (wasLoggedIn) {
Intent i=new Intent(this,MainActivity.class);
i.setAction(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish();
try {startActivity(i);}
catch (java.lang.Exception ignore) {}
System.exit(0);
}
是的,重新启动应用程序。这是唯一的办法,至少在4.4.2中是这样