我为Android开发了一个Cordova / Phonegap应用程序,它使用会话cookie登录第三方网站。 为此,我做了一个AJAX发布请求(使用jQuery),然后自动设置cookie。
但是,当我将智能手机更新到Android Lollipop 5.0以及应用程序库更新到API级别21时,Cookie停止工作。发生了什么变化?
答案 0 :(得分:26)
花了几个小时在互联网上寻找可行的解决方案,我发现了一篇很好地解释这个问题的文章,所以我在这里发帖是因为我觉得它对其他Stack Overflow用户有用。
基本上,问题在于新的Android第三方Cookie政策(https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView),它会默认阻止它们。
解决方案是在主要活动中添加几行代码:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
// Allow third party cookies for Android Lollipop
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebView webView = (WebView)super.appView;
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(webView,true);
}
super.loadUrl(Config.getStartUrl());
}
有关详细信息,请在此处添加完整文章的链接:http://joashpereira.com/blog/2014/11/19/fix-to-cordovaphonegap-apps-targeting-android-5-lollipop-or-later-on-default-disallowing-third-party-cookies/