У меня есть работающий API для отдыха, возвращающий данные JSON, созданные с помощью nodeJS и загруженные на веб-сервер. Также я использую React Native для создания внешнего интерфейса для Android и IOS. API работает нормально и возвращает данные, как и ожидалось, когда я создаю отладочную версию приложения в Android, используя «react-native run-android». Но приложение, похоже, не может получить данные из API, пока я создаю версию выпуска в Android, используя «cd android && ./gradlew assembleRelease». Я не вижу никаких обращений к серверу узла из моего приложения. Я использую axios для своих http-запросов.
Моя проблема решена. Согласно официальной документации Google, запросы к веб-серверу возможны только с защищенным доменом с действующим SSL-сертификатом.
"yourProject/android/app/src/main/res/xml/network_security_config.xml"
со следующим содержанием-
<?xml version = "1.0" encoding = "utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted = "true">
<!-- For React Native Hot-reloading system -->
<!-- If you are running on a device insert your computer IP -->
<domain includeSubdomains = "true">localhost</domain>
<domain includeSubdomains = "true">your own domain ip</domain>
<trust-anchors>
<certificates src = "system" />
<certificates src = "user" />
</trust-anchors>
</domain-config>
<base-config cleartextTrafficPermitted = "false" />
</network-security-config>
а затем импортируйте файл xml, добавив эту строку в AndroidManifest.xml между тегом приложения:
<application...
android:networkSecurityConfig = "@xml/network_security_config"
...>
Привет! Мне не помогло, есть другие предложения? Спасибо!
привет .. даже я застрял. не работал для меня. перепробовал почти все. любое предложение, пожалуйста. Спасибо
Добавление android:usesCleartextTraffic = "true" в android/app/src/main/AndroidManifest.xml мне подходит. Возможно, мы также захотим добавить в папку отлаживать (сестра основной) для целей разработки.
Может ли это быть связано с тем, что вы пытаетесь получить данные из http вместо https? Если это так, проверьте это решение: github.com/facebook/react-native/issues/…