A maneira mais fácil de implementar isso é usar esse atributo para AndroidManifest.xml
onde você permite tudo http
para todos os pedidos:
<application android:usesCleartextTraffic="true">
</application>
Porém, caso você queira mais configurações para links diferentes, por exemplo, permitindo http
alguns domínios, mas não outros, você deve fornecer o res/xml/networkSecurityConfig.xml
arquivo.
Para fazer isso no Android 9 Pie, você precisará definir um networkSecurityConfig
na sua application
tag Manifest como esta:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Agora, na sua xml
pasta, você precisa criar um arquivo network_security_config
com o mesmo nome do manifesto e, a partir daí, o conteúdo do arquivo deverá ser assim para ativar todas as solicitações sem criptografia:
<?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á, você está pronto para ir. Agora, seu aplicativo fará solicitações para todos os tipos de conexões. Para informações adicionais sobre este tópico, leia aqui .
A SOLUÇÃO TOTALMENTE TRABALHADA para ambos
Android
ou para osReact-native
usuários que enfrentam esse problema, basta adicioná-loandroid:usesCleartextTraffic="true"
no arquivo AndroidManifest.xml como este:entre
<application>
..</application>
tag assim:fonte
tools:ignore
erro, adicione-o aoxmlns:tools="http://schemas.android.com/tools"
seuapplication
. Como assim<application xmlns:tools="http://schemas.android.com/tools" ...
NSAppTransportSecurity
ao info.plist. stackoverflow.com/questions/38418998/…Uma maneira simples é definida
android:usesCleartextTraffic="true"
para vocêAndroidManifest.xml
Você
AndroidManifest.xml
pareceEu espero que isso te ajude.
fonte
Jeito fácil
Adicionar
usesCleartextTraffic
ao AndroidManifest.xmlIndica se o aplicativo pretende usar o tráfego de rede em texto não criptografado, como HTTP em texto não criptografado. O valor padrão para aplicativos que segmentam o nível 27 da API ou inferior é "true". Os aplicativos que segmentam o nível 28 ou superior da API padrão são "false".
fonte
Basta definir o
usesCleartextTraffic
sinalizador na tag do aplicativo doAndroidManifest.xml
arquivo. Não há necessidade de criar um arquivo de configuração para o Android.fonte
Para
React Native
aplicativos em execução na depuração, adicione oxml block
mencionado por @Xenolionreact_native_config.xml
em<project>/android/app/src/debug/res/xml
Semelhante ao seguinte trecho:
fonte
Eu tenho o mesmo problema e noto que minha configuração de segurança tem TAGS diferentes, como a resposta do @Xenolion diz
então eu mudo o TAGS "domain-config" para "base-config" e funciona assim:
fonte
Você pode verificar se está enviando clearText através da correção HTTP: https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
OR
No caso do cliente HTTP Apache descontinuação (do Google): com o Android 6.0, removemos o suporte ao cliente HTTP Apache. A partir do Android 9, essa biblioteca é removida do caminho do bootclass e não está disponível para aplicativos por padrão. Para continuar usando o cliente HTTP Apache, os aplicativos que segmentam o Android 9 e superior podem adicionar o seguinte ao AndroidManifest.xml:
Fonte https://developer.android.com/about/versions/pie/android-9.0-changes-28
fonte