La manera fácil de implementar esto es usar este atributo en AndroidManifest.xmldonde permite todas httplas solicitudes:
<application android:usesCleartextTraffic="true">
</application>
Pero en caso de que desee algunas configuraciones más para diferentes enlaces, por ejemplo, permitiendo httpalgunos dominios pero no otros dominios, debe proporcionar el res/xml/networkSecurityConfig.xmlarchivo.
Para hacer esto en Android 9 Pie, deberá establecer una etiqueta networkSecurityConfigen su manifiesto applicationcomo esta:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Luego, en su xmlcarpeta, ahora debe crear un archivo con el mismo nombre network_security_configque 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
AndroidoReact-nativeusuarios 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:ignoreerror, asegúrese de agregarloxmlns:tools="http://schemas.android.com/tools"dentro de suapplication. Me gusta así<application xmlns:tools="http://schemas.android.com/tools" ...NSAppTransportSecurityde iOS es agregar a info.plist. stackoverflow.com/questions/38418998/…Una forma simple se establece
android:usesCleartextTraffic="true"en tiAndroidManifest.xmlTu
AndroidManifest.xmlaspecto comoEspero que esto ayude.
fuente
Manera fácil
Añadir
usesCleartextTraffica 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
usesCleartextTrafficbandera en la etiqueta de aplicación delAndroidManifest.xmlarchivo. No es necesario crear un archivo de configuración para Android.fuente
Para las
React Nativeaplicaciones que se ejecutan en depuración, agregue loxml blockmencionado por @Xenolion areact_native_config.xmlubicado en<project>/android/app/src/debug/res/xmlSimilar 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