Cordova会话cookie不适用于Android Lollipop

jos*_*mmo 11 cookies ajax android cordova

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

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

jos*_*mmo 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());
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请在此处输入完整文章的链接:http://joashpereira.com/blog/2014/11/19/fix-to-cordovaphonegap-apps-targeting-android-5-lollipop-or-later-上默认不允许的第三方饼干/