Самый простой способ реализовать это - использовать этот атрибут AndroidManifest.xml
там, где вы разрешаете все http
для всех запросов:
<application android:usesCleartextTraffic="true">
</application>
Но в случае, если вам нужны дополнительные конфигурации для разных ссылок, например, http
для некоторых доменов, но не для других доменов, вы должны предоставить res/xml/networkSecurityConfig.xml
файл.
Чтобы сделать это в Android 9 Pie, вам нужно установить тег networkSecurityConfig
в манифесте application
так:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
Затем в вашей xml
папке вы должны создать файл с именем, network_security_config
аналогичным тому, как вы его назвали в Манифесте, и оттуда содержимое вашего файла должно быть таким, чтобы разрешить все запросы без шифрования:
<?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>
Оттуда вам хорошо идти. Теперь ваше приложение будет делать запросы на все типы соединений. Для получения дополнительной информации по этой теме читайте здесь .
ПОЛНОСТЬЮ РАБОЧАЯ РЕШЕНИЕ для обоих
Android
илиReact-native
пользователей сталкиваются этот вопрос просто добавить этоandroid:usesCleartextTraffic="true"
в AndroidManifest.xml файл , как это:между
<application>
..</application>
тег, как это:источник
tools:ignore
ошибку, не забудьте добавитьxmlns:tools="http://schemas.android.com/tools"
в свойapplication
. Как так<application xmlns:tools="http://schemas.android.com/tools" ...
NSAppTransportSecurity
в info.plist. stackoverflow.com/questions/38418998/...Простой путь установлен
android:usesCleartextTraffic="true"
на васAndroidManifest.xml
Ты
AndroidManifest.xml
выглядишь какЯ надеюсь, что это поможет вам.
источник
Простой способ
Добавить
usesCleartextTraffic
в AndroidManifest.xmlУказывает, намерено ли приложение использовать сетевой трафик в виде открытого текста, например HTTP в виде открытого текста. Значением по умолчанию для приложений с целевым уровнем API 27 или ниже является «true». Приложения с целевым уровнем API 28 или выше по умолчанию имеют значение «false».
источник
Просто установите
usesCleartextTraffic
флажок в теге приложенияAndroidManifest.xml
файла. Нет необходимости создавать конфигурационный файл для Android.источник
Для
React Native
приложений, запущенных в режиме отладки, добавьтеxml block
упомянутое @Xenolion вreact_native_config.xml
расположение в<project>/android/app/src/debug/res/xml
Аналогично следующему фрагменту:
источник
у меня возникла та же проблема, и я заметил, что в моей конфигурации безопасности есть разные теги, как в ответе @Xenolion
поэтому я изменяю TAGS «domain-config» на «base-config» и работает так:
источник
Вы можете проверить, отправляете ли вы clearText через HTTP Fix: https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-android-9-pie-2f4e9e2235e6
ИЛИ
В случае HTTP-клиента Apache не рекомендуется (от Google): в Android 6.0 мы убрали поддержку HTTP-клиента Apache. Начиная с Android 9, эта библиотека удаляется из пути загрузки и по умолчанию недоступна для приложений. Чтобы продолжить использовать HTTP-клиент Apache, приложения, ориентированные на Android 9 и выше, могут добавить в свой AndroidManifest.xml следующее:
Источник https://developer.android.com/about/versions/pie/android-9.0-changes-28
источник