当我执行以下代码时:
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"
在 Gingerbread 上得到"There are cookies: false"
似乎在 Gingerbread 上的 cookie(在这种情况下是一个)没有被 webView 保存,因此网页拒绝让我登录,因为在身份验证期间 cookie 没有在标头中传递。
使用时也会发生同样的情况CookieSyncManager
。
另外我不知道它是否相关,但代码是由 Fragment 使用Android Support Library
.
以前有人遇到过这个问题吗?
谢谢。