La manera fácil de implementar esto es usar este atributo en AndroidManifest.xml
donde permite todas http
las solicitudes:
<application android:usesCleartextTraffic="true">
</application>
Pero en caso de que desee algunas configuraciones más para diferentes enlaces, por ejemplo, permitiendo http
algunos dominios pero no otros dominios, debe proporcionar el res/xml/networkSecurityConfig.xml
archivo.
Para hacer esto en Android 9 Pie, deberá establecer una etiqueta networkSecurityConfig
en su manifiesto application
como esta:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Luego, en su xml
carpeta, ahora debe crear un archivo con el mismo nombre network_security_config
que lo ha nombrado en el Manifiesto y, a partir de ahí, el contenido de su archivo debería ser así para permitir todas las solicitudes sin cifrado:
<?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>
A partir de ahí eres bueno para ir. Ahora su aplicación realizará solicitudes para todo tipo de conexiones. Para obtener información adicional sobre este tema, lea aquí .
La SOLUCIÓN TOTALMENTE TRABAJADORA para ambos
Android
oReact-native
usuarios que enfrentan este problema simplemente agregue estoandroid:usesCleartextTraffic="true"
en el archivo AndroidManifest.xml de esta manera:en el medio
<application>
...</application>
etiqueta como esta:fuente
tools:ignore
error, asegúrese de agregarloxmlns:tools="http://schemas.android.com/tools"
dentro de suapplication
. Me gusta así<application xmlns:tools="http://schemas.android.com/tools" ...
NSAppTransportSecurity
de iOS es agregar a info.plist. stackoverflow.com/questions/38418998/…Una forma simple se establece
android:usesCleartextTraffic="true"
en tiAndroidManifest.xml
Tu
AndroidManifest.xml
aspecto comoEspero que esto ayude.
fuente
Manera fácil
Añadir
usesCleartextTraffic
a AndroidManifest.xmlIndica si la aplicación tiene la intención de usar tráfico de red de texto sin formato, como HTTP de texto sin formato. El valor predeterminado para las aplicaciones que se dirigen al nivel de API 27 o inferior es "verdadero". Las aplicaciones que se dirigen al nivel 28 o superior de la API tienen el valor predeterminado "falso".
fuente
Simplemente configure la
usesCleartextTraffic
bandera en la etiqueta de aplicación delAndroidManifest.xml
archivo. No es necesario crear un archivo de configuración para Android.fuente
Para las
React Native
aplicaciones que se ejecutan en depuración, agregue loxml block
mencionado por @Xenolion areact_native_config.xml
ubicado en<project>/android/app/src/debug/res/xml
Similar al siguiente fragmento:
fuente
Tengo el mismo problema y noto que mi configuración de seguridad tiene TAGS diferentes, como dice la respuesta @Xenolion
entonces cambio la etiqueta "domain-config" por "base-config" y funciona así:
fuente
Puede verificar si está enviando texto claro a través de HTTP Fix: https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
O
en el caso del cliente Apache HTTP desaprobación (de Google): con Android 6.0, eliminamos la compatibilidad con el cliente Apache HTTP. A partir de Android 9, esa biblioteca se elimina de bootclasspath y no está disponible para las aplicaciones de forma predeterminada. Para continuar usando el cliente Apache HTTP, las aplicaciones que se dirigen a Android 9 y superior pueden agregar lo siguiente a su AndroidManifest.xml:
Fuente https://developer.android.com/about/versions/pie/android-9.0-changes-28
fuente