当我执行以下代码时:
CookieSyncManager.createInstance(activity);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler,
String host, String realm) {
Log.d(Utils.TAG, "There are cookies: " + cookieManager.hasCookies());
handler.proceed("user","pass");
}
}
webView.loadurl("https://...");
在JellyBean上我得到"There are cookies: true"
在姜饼上我得到"There are cookies: false"
似乎在Gingerbread上,webView没有保存cookie(本例中为一个),因此网页拒绝登录,因为在身份验证期间cookie未在标题中传递。
使用CookieSyncManager
时会发生同样的情况。
此外我不知道它可能是相关的,但代码是由片段使用Android Support Library
执行的。
以前有没有人遇到这个问题?
感谢。