Die einfache Möglichkeit, dies zu implementieren, besteht darin, dieses Attribut für Ihr zu verwenden, in AndroidManifest.xml
dem Sie alle http
für alle Anforderungen zulassen :
<application android:usesCleartextTraffic="true">
</application>
Wenn Sie jedoch beispielsweise weitere Konfigurationen für verschiedene Links wünschen und http
einige Domänen, jedoch keine anderen Domänen zulassen, müssen Sie eine res/xml/networkSecurityConfig.xml
Datei bereitstellen .
Um dies in Android 9 Pie zu tun, müssen Sie networkSecurityConfig
in Ihrem Manifest- application
Tag Folgendes festlegen :
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Dann müssen Sie in Ihrem xml
Ordner jetzt eine Datei erstellen, die network_security_config
genau so benannt ist, wie Sie sie im Manifest benannt haben. Von dort aus sollte der Inhalt Ihrer Datei so sein, dass alle Anforderungen ohne Verschlüsselung aktiviert werden:
<?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>
Von dort aus können Sie loslegen. Jetzt stellt Ihre App Anfragen für alle Arten von Verbindungen. Weitere Informationen zu diesem Thema finden Sie hier .
Die voll funktionsfähige Lösung für beide
Android
oderReact-native
Benutzer dieses Problem konfrontiert gerade dieses Addandroid:usesCleartextTraffic="true"
in AndroidManifest.xml wie diese Datei:dazwischen
<application>
..</application>
tag wie folgt:quelle
tools:ignore
Fehlermeldung erhalten, stellen Sie sicher, dass Siexmlns:tools="http://schemas.android.com/tools"
in Ihrem hinzufügenapplication
. Wie so<application xmlns:tools="http://schemas.android.com/tools" ...
NSAppTransportSecurity
reaktionsnative Entwickler hilfreich sein könnte. Die ios-Lösung besteht darin , info.plist hinzuzufügen . stackoverflow.com/questions/38418998/…Ein einfacher Weg liegt
android:usesCleartextTraffic="true"
bei IhnenAndroidManifest.xml
Du
AndroidManifest.xml
siehst aus wieIch hoffe, dies wird dir helfen.
quelle
Einfacher Weg
In
usesCleartextTraffic
zu AndroidManifest.xmlGibt an, ob die App Klartext-Netzwerkverkehr verwenden möchte, z. B. Klartext-HTTP. Der Standardwert für Apps, die auf API- Level 27 oder niedriger abzielen, ist "true". Apps, die auf API- Level 28 oder höher abzielen, sind standardmäßig "false".
quelle
Setzen Sie einfach das
usesCleartextTraffic
Flag im Anwendungs-Tag derAndroidManifest.xml
Datei. Es ist nicht erforderlich, eine Konfigurationsdatei für Android zu erstellen.quelle
Für
React Native
Anwendungen beim Laufen im Debug hinzufügen , diexml block
von @Xenolion erwähntreact_native_config.xml
befindet sich in<project>/android/app/src/debug/res/xml
Ähnlich dem folgenden Snippet:
quelle
Ich habe das gleiche Problem und stelle fest, dass meine Sicherheitskonfiguration unterschiedliche TAGS hat, wie in der Antwort von @Xenolion angegeben
Also ändere ich die TAGS "Domain-Konfiguration" für "Basis-Konfiguration" und funktioniert wie folgt:
quelle
Sie können überprüfen, ob Sie clearText über HTTP Fix senden: https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
ODER
Im Fall eines Apache HTTP-Clients Veraltet (von Google): Mit Android 6.0 haben wir die Unterstützung für den Apache HTTP-Client entfernt. Ab Android 9 wird diese Bibliothek aus dem Bootklassenpfad entfernt und steht Apps standardmäßig nicht zur Verfügung. Um den Apache HTTP-Client weiterhin zu verwenden, können Apps, die auf Android 9 und höher abzielen, Folgendes zu ihrer AndroidManifest.xml hinzufügen:
Quelle https://developer.android.com/about/versions/pie/android-9.0-changes-28
quelle