После обновления до Cordova Android 8.0 я вижу net::ERR_CLEARTEXT_NOT_PERMITTED
ошибки при попытке подключиться к http://
целям.
Почему это так и как я могу это решить?
После обновления до Cordova Android 8.0 я вижу net::ERR_CLEARTEXT_NOT_PERMITTED
ошибки при попытке подключиться к http://
целям.
Почему это так и как я могу это решить?
Уровень API по умолчанию в платформе Cordova Android был обновлен. На устройстве Android 9 обмен текстовыми сообщениями теперь отключен по умолчанию. .
Чтобы снова разрешить общение в формате открытого текста, установите android:usesCleartextTraffic
на своем application
теге true
:
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
Как отмечено в комментариях, если вы ранее не определили android
пространство имен XML, вы получите error: unbound prefix
во время сборки. Это означает, что вам нужно добавить его в свой widget
тег таким же образом config.xml
, например:
<widget id="you-app-id" version="1.2.3"
xmlns="http://www.w3.org/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
error: unbound prefix.
) при попытке создать приложение Cordova. Решение заключалось в том, чтобы добавить в мойconfig.xml
файл в мой корневой<widget>
элемент атрибутxmlns:android="http://schemas.android.com/apk/res/android
AndroidManifest.xml
в ваш проект Android?В config.xml нужно исправить две вещи. Поэтому правильным ответом должно быть добавление xmls: android:
плюс редактирование конфигурации, чтобы разрешить:
Если шаг 1 избежать, ошибка: несвязанный префикс. будет появляться
источник
Открытый текст здесь представляет собой незашифрованную информацию. Начиная с Android 9, рекомендуется, чтобы приложения вызывали API-интерфейсы HTTPS, чтобы убедиться, что нет сбоев.
Однако, если нам по-прежнему нужно вызывать HTTP API, мы можем сделать следующее:
Платформа: Ionic 4
Создайте файл с именем: network_security_config.xml в корневом каталоге проекта / resources / android / xml
Добавьте следующие строки:
Теперь в файле project-root / config.xml обновите следующие строки:
Теперь он должен работать.
источник
config.xml
передedit-config
тегом:<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
. Спасибо!Для решения проблемы есть другой вариант. в файле resources / android / xml / network_security_config.xml. вставить:
В моем случае я использую IP-адрес, тогда необходима базовая конфигурация, но если у вас есть домен. просто добавьте домен.
источник
Сегодня я сам столкнулся с этой проблемой и нашел действительно отличный плагин, который избавит вас от хлопот вручную разрешить трафик в открытом виде в Android 9+ для вашего приложения Apache Cordova. Просто установите cordova-plugin-cleartext, и этот плагин позаботится обо всех негласных вещах Android за вас.
источник
После нескольких дней борьбы это работает для меня, и я надеюсь, что это работает и для вас.
добавьте это в свой CONFIG.XML в верхней части кода.
и это под платформу android.
добавьте в этот файл следующий код «resources / android / xml / network_security_config.xml» .
источник
trust-anchors
теги были последним компонентом, заставляющим работать все остальное.Для меня сработало добавление следующего атрибута в открывающий тег <widget>. Простая и живая перезагрузка корректно на эмуляторе Android 9. xmlns: android = "http://schemas.android.com/apk/res/android"
источник
edit-config
коду из принятого ответа (исправляетunbound prefix
ошибку)ты должен добавить
к
как это
источник
Ниже приводится решение, которое сработало для меня. Я обновил следующие файлы:
Изменения в соответствующих файлах заключаются в следующем:
1. config.xml
Я добавил
<application android:usesCleartextTraffic="true" />
тег внутри<edit-config>
тега в файл config.xml2. network_security_config.xml
В этом файле я добавил 2
<domain>
тега в<domain-config>
тег, основной домен и субдомен в соответствии с требованиями моего проекта.Спасибо @Ashutosh за помощь.
Надеюсь, поможет.
источник
Я использую IONIC 5.4.13, cordova 9.0.0 (cordova-lib@9.0.1)
Возможно, я повторяю информацию, но для меня проблема начала появляться после добавления какого-либо плагина (пока не уверен). Я пробовал все вышеперечисленные комбинации, но ничего не помогло. Он начал работать только после добавления:
подать в проект на
так что мой файл network_security_config.xml теперь выглядит так:
Спасибо всем.
источник
Старый ionic cli (4.2) вызывал проблему в моем случае, обновление до 5 решает проблему
источник
Мы используем
cordova-custom-config
плагин для управления конфигурацией Android. В этом случае решение заключалось в добавлении новогоcustom-preference
в нашconfig.xml
:Кто-нибудь знает, как это сделать только для сборок разработки? Я был бы рад, если бы в сборках релиза не было этого параметра
false
.(Я вижу предложения
buildType="debug"
по конфигурации iOS для этого, но не уверен, применимо ли это к конфигурации Android.)источник
@Der Hochstapler благодарит за решение.
но в IONIC 4 у меня работают некоторые настройки в проекте config.xml
Добавить строку в теге виджета
После этого, в теге платформы для андроида настроить некоторые линии проверки ниже
добавить usesCleartextTraffic = True после networkSecurityConfig и ресурсов файлов тегов
источник
В проекте конденсатора Ionic 4, когда я упаковал и развернул на телефоне Android для тестирования, я получил эту ошибку. Решено переустановкой конденсатора и обновлением платформы Android.
источник
Если у вас есть устаревшая структура Cordova, имеющая проблемы с NPM и командой Cordova. Я бы предложил вариант ниже.
Создайте файл android / res / xml / network_security_config.xml -
AndroidManifest.xml -
источник
Следующее решение сработало для меня -
goto
resources/android/xml/network_security_config.xml
Измените его на-источник
Просто добавьте эту строку в файл platform / android / app / src / main / AndroidManifest.xml
<application android: hardwareAccelerated = "true" android: icon = "@ mipmap / ic_launcher" android: label = "@ string / app_name" android: supportsRtl = "true" android: usesCleartextTraffic = "true" >
источник