Ionic Native HTTP не работает для Anroid 9 (Pie) и выше? - PullRequest
2 голосов
/ 28 июня 2019

Я создал приложение, которое успешно подключается к нашему серверу по протоколу Ionic Native HTTP, тестируя его с версией Marshmallow для Samsung Galaxy J7 Prime и рядом других приложений, которые еще не работали под Android Pie. По какой-то причине, когда я тестировал его на устройстве под Android Pie, он больше не работает, и у меня возникают проблемы с политикой CORS. Кто-нибудь сталкивался с подобной проблемой? Есть ли обходной путь для этого? К сожалению, внесение изменений в конфигурацию сервера невозможно. Я также читал некоторые решения о прокси, но не уверен, как их реализовать.

Версии: cordova-plugin-advanced-http: 2.1.1 ionic-native / http: 5.8.0

1 Ответ

4 голосов
/ 28 июня 2019

Android P требует HTTPS по умолчанию. Это означает, что если вы используете в своем приложении незашифрованные HTTP-запросы, приложение будет работать нормально во всех более низких версиях, чем Android P.

Чтобы избежать этого исключения безопасности, попробуйте внести изменения в код приложения ниже.

В AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest>

и в res / xml добавить файл с именем: network_security_config.xml

network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        //  Add host of your download URL in below line. 
        //   ie. if url is  "https://www.google.com/search?source=...."
        //   then just add "www.google.com"
        <domain includeSubdomains="true">www.google.com</domain>
    </domain-config>
</network-security-config>
...