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/