Cordova session cookies не работают на Android леденец

Я разрабатываю приложение Cordova / Phonegap для Android, которое использует сеансовые куки для входа на сторонние веб-сайты. Для этого я делаю запрос AJAX post (с jQuery), а затем куки устанавливаются автоматически.

но, когда я обновил свой смартфон до Android Lollipop 5.0, а также библиотеки приложений до уровня API 21, cookies перестали работать. Что изменилось?

1 ответов


после нескольких часов, проведенных в Интернете в поисках рабочего решения, я наткнулся на статью, которая объясняет проблему очень хорошо, поэтому я размещаю ее здесь, потому что я думал, что это будет полезно для других пользователей переполнения стека.

в основном, проблема заключается в новой политике сторонних куки-файлов Android (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/