gpt4 book ai didi

android - WebViewClient 即使在注销后也会加载以前的用户数据

转载 作者:行者123 更新时间:2023-11-29 01:40:48 28 4
gpt4 key购买 nike

我正在使用以下方法将 URL 加载到我的 WebView 中:

mWebView.setWebviewClient(new WebViewClient);

此 URL 加载 Http 身份验证页面。用户登录后,他的凭据将保存在 SharedPreference 中。此外,我还实现了注销功能,我清除了所有数据。

再次,当我尝试加载 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())

我很困惑,在网上搜索了答案,但找不到任何东西。

最佳答案

我在这上面花了太多时间。这些方法都不起作用,如此处所述https://code.google.com/p/android/issues/detail?id=22272 .

最后我通过在 onReceivedHttpAuthRequest 中设置标志 wasLoggegIn 解决了这个问题,然后当我想清除登录凭据时,检查标志:

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 上是这样。

关于android - WebViewClient 即使在注销后也会加载以前的用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com