Les cookies de session Cordova ne fonctionnent pas sur Android Lollipop

Je développe une application Cordova / Phonegap pour Android qui utilise des cookies de session pour se connecter à des sites tiers. Pour cela, je fais une demande de publication AJAX (avec jQuery), puis les cookies sont définis automatiquement.

Mais, lorsque j'ai mis à jour mon smartphone vers Android Lollipop 5.0 et aussi les bibliothèques d'applications au niveau API 21, les cookies ont cessé de fonctionner. Qu'est ce qui a changé?

  • Cliquez sur l'élément sur la liste
  • Android: Linear Layout new Line
  • Comment ajouter un TextView au-dessus d'un FloatingActionButton dans Android
  • Appelez-vous des listview de lignes qui ne sont pas mises à jour ou en cours après la mise à niveau Marshmallow
  • Comment puis-je obtenir le centre x, y de ma vue dans Android?
  • CollapsingToolbarLayout Problème avec GridView
  • La requête Ajay ajax semble ne pas commencer dans Android
  • Android: intercepte l'appel AJAX depuis WebView
  • Les requêtes Ajax échouent après la mise à niveau vers Cordova 5.0 + cordova-android@4.0
  • Effacer les données utilisateur ou Effacer le cache sur Phonegap android
  • Phonegap local build - jquery ajax error: readystate 0 responsetext status 0 statustext error
  • Empêcher le deuxième appel ajax d'attendre jusqu'à la fin du premier appel ajax
  • One Solution collect form web for “Les cookies de session Cordova ne fonctionnent pas sur Android Lollipop”

    Après quelques heures de recherche sur Internet pour une solution de travail, j'ai rencontré un article qui explique très bien le problème, alors je l'affiche ici parce que je pensais qu'il serait utile pour d'autres utilisateurs de Stack Overflow.

    Fondamentalement, le problème réside dans la nouvelle politique de cookies de tiers tiers ( https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView ), ce qui les bloque par défaut.

    Les solutions sont d'ajouter quelques lignes de code à l'activité principale:

    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()); } 

    Pour plus d'informations, j'ai mis un lien vers l'article complet ici: http://joashpereira.com/blog/2014/11/19/fix-to-cordovaphonegap-apps-targeting-android-5-lollipop-or-later- Sur-défaut-refusant-tiers-cookies /

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.