带有WebViewClient的Android WebView - 使用onReceivedHttpAuthRequest进行身份验证

时间:2012-08-28 10:27:52

标签: android authentication webview authorization webviewclient

在我的应用程序中,我使用带有WebViewClient的WebView,使用覆盖方法onReceivedHttpAuthRequest,在那里我使用AlertDialog提示用户输入他的凭据。输入凭据后,我致电

handler.proceed(username, password);

我的问题是: 在Android 4模拟器中,一切正常,用户可以毫无问题地浏览经过身份验证的站点,但在较旧的Android版本中,似乎每次用户刷新时都会调用onReceivedHttpAuthRequest,或者导航到经过身份验证的站点中的其他页面。

有人可以建议我,我做错了什么?谢谢。

我尝试了什么:

也打电话

webView.setHttpAuthUsernamePassword(host, realm, username, password);

输入凭据并在onReceivedHttpAuthRequest中调用登录对话框之前添加此代码:

String[] usernamePassword = webView.getHttpAuthUsernamePassword(host, realm);
if (usernamePassword!=null) {
    handler.proceed(usernamePassword[0], usernamePassword[1]);
    return;
}

对我不起作用 - 用户可以浏览经过身份验证的站点,但在注销后,用户名和密码仍然存储在webView中,用户再次自动登录 - 在这种情况下我需要检测用户的注销和删除存储的凭据,有人可以告诉我,怎么做?

非常感谢!

0 个答案:

没有答案