Cordova会话cookie不适用于Android Lollipop

时间:2014-12-20 11:11:13

标签: android ajax cordova cookies

我为Android开发了一个Cordova / Phonegap应用程序,它使用会话cookie登录第三方网站。 为此,我做了一个AJAX发布请求(使用jQuery),然后自动设置cookie。

但是,当我将智能手机更新到Android Lollipop 5.0以及应用程序库更新到API级别21时,Cookie停止工作。发生了什么变化?

1 个答案:

答案 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/