Блокировка запросов на получение https в android и ios - React Native

Я создаю одно мобильное приложение с помощью React Native,

В этом случае я использую один api для получения данных, изначально у меня есть один веб-api в http, например, так: http://example.com он успешно извлекает данные в android, но не в ios,

Я прочитал документацию по Apple, затем обнаружил, что Apple требует https для производственных приложений,

Итак, я решил изменить свой протокол веб-api на https следующим образом: https://example.com, после успешного изменения моего api я получил ответ на веб-странице, когда я нажал на этот URL-адрес, но теперь, когда я запускаю свое приложение React Native, он сообщает мне Ошибка сетевого запроса

Я также меняю свой http на https в моем коде запроса React Native fetch. Я не знаю, в чем проблема, это проблема с React Native?

Я считаю, что Apple отменила политику использования только https. Вероятно, ваша проблема в другом.

Roy Wang 22.04.2018 08:55

Тогда как насчет андроида? если я использую https в Android, он показывает ту же ошибку. Ошибка сетевого запроса.

Mohamed Sameer 22.04.2018 08:56

Работает ли API, когда вы пробуете его в Интернете / почтальоне? Для iOS вам необходимо отредактировать info.plist, чтобы разрешить https: stackoverflow.com/a/38427829/6599478. Для Android: вы указали разрешение на ИНТЕРНЕТ в своем AndroidManifest?

Roy Wang 22.04.2018 09:05

Я создаю собственное приложение React, используя «create-react-native-app», поэтому у меня нет папки android и ios.

Mohamed Sameer 22.04.2018 09:06

Я использую expo client.

Mohamed Sameer 22.04.2018 09:06

Попробуйте npmjs.com/package/axios и посмотрите, работает ли он. Вы указали URL-адрес конечной точки с помощью среды var? Убедитесь, что он действительно вызывает правильный URL.

Roy Wang 22.04.2018 09:10

@MohamedSameer Удалось ли вам исправить проблему?

Chetan 03.10.2018 21:25

https успешно работает на iOS, но не работает на устройствах Android с версиями ОС ниже 6.0.

Mohamed Sameer 04.10.2018 06:04
0
8
1 623
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

https недостаточно для iOS. По умолчанию ваш SSL-сертификат должен соответствовать TSL 1.2 или выше.

Вы можете переопределить это поведение, установив минимальный поддерживаемый TSL в файле info.plist следующим образом:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
     <key>NSExceptionDomains</key>
<dict>
    <key>example.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionRequiresForwardSecrecy</key>
        <false/>
        <key>NSExceptionMinimumTLSVersion</key>
        <string>TLSv1.0</string>
    </dict>
</dict>

Работал на iOS, но не на android.

Mohamed Sameer 04.10.2018 06:05

Другие вопросы по теме