Après la mise à niveau vers Cordova Android 8.0, je rencontre des erreurs net::ERR_CLEARTEXT_NOT_PERMITTED
lorsque j'essaie de me connecter à des cibles http://
.
Pourquoi cela et comment puis-je résoudre ce problème?
Après la mise à niveau vers Cordova Android 8.0, je rencontre des erreurs net::ERR_CLEARTEXT_NOT_PERMITTED
lorsque j'essaie de me connecter à des cibles http://
.
Pourquoi cela et comment puis-je résoudre ce problème?
Le niveau API par défaut dans la plateforme Android de Cordova a été mis à jour. Sur un appareil Android 9, la communication en texte clair est désormais désactivée par défaut.
Pour autoriser à nouveau la communication en texte clair, définissez le android:usesCleartextTraffic
sur votre balise application
à true
:
Comme indiqué dans les commentaires, si vous n'avez pas défini l'espace de noms XML android
précédemment, vous recevrez une erreur : préfixe non lié
lors de la compilation. Cela indique que vous devez l'ajouter à votre balise widget
dans le même config.xml
, comme ceci :
J'ai rencontré une erreur (error: unbound prefix.
) en essayant de construire mon application Cordova. La solution a été d'ajouter dans mon fichier config.xml
, dans mon élément racine l'attribut xmlns:android="http://schemas.android.com/apk/res/android
@MichaelB Tout le monde peut modifier les réponses et est invité à le faire. Mais, bien sûr, je le ferai.
Le texte en clair ici représente des informations non cryptées. Depuis Android 9, il est recommandé que les applications appellent des APIs HTTPS pour s'assurer qu'il n'y a pas d'écoutes indiscrètes.
Cependant, si nous avons encore besoin d'appeler des APIs HTTP, nous pouvons faire ce qui suit:
Plateforme: Ionic 4
Créez un fichier nommé: network_security_config.xml sous project-root/resources/android/xml
Ajoutez les lignes suivantes:
ip-or-domain-name
Maintenant dans project-root/config.xml, mettez à jour les lignes suivantes:
... autres déclarations...
Cela devrait fonctionner maintenant.
Merci mec, ça a fonctionné pour moi pour Ionic 4. J'ai spécifié le nom de domaine example.com et ça a marché. J'ai aussi obtenu de l'aide à partir de ce developer.android.com/training/articles/security-config
Cela fonctionne mais j'ai besoin d'ajouter cette ligne dans le fichier config.xml
avant la balise edit-config
: . Merci!
J'ai moi-même rencontré ce problème aujourd'hui et j'ai trouvé un plugin vraiment astucieux qui vous évitera la peine d'essayer d'autoriser manuellement le trafic en clair dans Android 9+ pour votre application Apache Cordova. Il vous suffit d'installer cordova-plugin-cleartext et le plugin devrait se charger de tout ce qui se passe en arrière-plan sur Android pour vous.
$ cordova plugin add cordova-plugin-cleartext
$ cordova prepare
$ cordova run android
Pour les autres à la recherche de la réponse. J'ai continué à rencontrer d'autres erreurs en appliquant les correctifs de configuration, mais cela a fonctionné tout de suite. Merci Topher
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.