Le moyen le plus simple de l'implémenter est d'utiliser cet attribut pour votre AndroidManifest.xml
où vous autorisez tout http
pour toutes les demandes:
<application android:usesCleartextTraffic="true">
</application>
Mais au cas où vous voudriez plus de configurations pour différents liens par exemple, autorisant http
certains domaines mais pas d'autres domaines, vous devez fournir un res/xml/networkSecurityConfig.xml
fichier.
Pour ce faire dans Android 9 Pie, vous devrez définir un networkSecurityConfig
dans votre application
balise Manifest comme suit:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Ensuite, dans votre xml
dossier, vous devez maintenant créer un fichier nommé network_security_config
comme vous l'avez nommé dans le manifeste et à partir de là, le contenu de votre fichier devrait être comme ceci pour activer toutes les demandes sans chiffrement:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
De là, vous êtes prêt à partir. Maintenant, votre application fera des demandes pour tous les types de connexions. Pour plus d'informations sur ce sujet, lisez ici .
La SOLUTION ENTIÈREMENT FONCTIONNELLE pour les deux
Android
ou lesReact-native
utilisateurs confrontés à ce problème, ajoutez simplement ceciandroid:usesCleartextTraffic="true"
dans le fichier AndroidManifest.xml comme ceci:entre
<application>
..</application>
balise comme ceci:la source
tools:ignore
erreur, assurez-vous d'ajouter à l'xmlns:tools="http://schemas.android.com/tools"
intérieur de votre fichierapplication
. Like so<application xmlns:tools="http://schemas.android.com/tools" ...
NSAppTransportSecurity
à info.plist. stackoverflow.com/questions/38418998/…Un moyen simple est défini
android:usesCleartextTraffic="true"
sur vousAndroidManifest.xml
Votre
AndroidManifest.xml
look commeJ'espère que cela t'aidera.
la source
Moyen facile
Ajouter
usesCleartextTraffic
à AndroidManifest.xmlIndique si l'application a l'intention d'utiliser le trafic réseau en texte clair, tel que HTTP en texte clair. La valeur par défaut des applications qui ciblent le niveau d' API 27 ou inférieur est "true". Les applications qui ciblent le niveau d' API 28 ou supérieur par défaut sont "false".
la source
Définissez simplement le
usesCleartextTraffic
drapeau dans la balise d'application duAndroidManifest.xml
fichier. Pas besoin de créer un fichier de configuration pour Android.la source
Pour les
React Native
applications exécutées en mode débogage, ajoutez lexml block
mentionné par @Xenolion àreact_native_config.xml
situé dans<project>/android/app/src/debug/res/xml
Semblable à l'extrait de code suivant:
la source
J'ai eu le même problème et je remarque que ma configuration de sécurité a différents TAGS comme le dit la réponse @Xenolion
donc je change les TAGS "domain-config" pour "base-config" et fonctionne, comme ceci:
la source
Vous pouvez vérifier si vous envoyez clearText via HTTP Fix: https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
OU
dans le cas du client HTTP Apache obsolescence (de Google): avec Android 6.0, nous avons supprimé la prise en charge du client HTTP Apache. À partir d'Android 9, cette bibliothèque est supprimée du chemin bootclasspath et n'est pas disponible par défaut pour les applications. Pour continuer à utiliser le client HTTP Apache, les applications qui ciblent Android 9 et supérieur peuvent ajouter les éléments suivants à leur AndroidManifest.xml:
Source https://developer.android.com/about/versions/pie/android-9.0-changes-28
la source