Después de actualizar a Cordova Android 8.0 , veo net::ERR_CLEARTEXT_NOT_PERMITTED
errores al intentar conectarme a los http://
objetivos.
¿Por qué es así y cómo puedo resolverlo?
Después de actualizar a Cordova Android 8.0 , veo net::ERR_CLEARTEXT_NOT_PERMITTED
errores al intentar conectarme a los http://
objetivos.
¿Por qué es así y cómo puedo resolverlo?
Se actualizó el nivel de API predeterminado en la plataforma de Android Cordova. En un dispositivo Android 9, la comunicación de texto claro ahora está deshabilitada de forma predeterminada .
Para permitir la comunicación de texto claro nuevamente, configure android:usesCleartextTraffic
en su application
etiqueta a true
:
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>
Como se indica en los comentarios, si no ha definido android
previamente el espacio de nombres XML, recibirá un error: unbound prefix
durante la compilación. Esto indica que debe agregarlo a su widget
etiqueta de la misma manera config.xml
, así:
<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.
) al intentar compilar mi aplicación Cordova. La solución fue agregar en miconfig.xml
archivo, en mi<widget>
elemento raíz el atributoxmlns:android="http://schemas.android.com/apk/res/android
AndroidManifest.xml
en su proyecto de Android?Hay dos cosas que corregir en config.xml Por lo tanto, la respuesta correcta debería ser agregar el xmls: android:
además de editar la configuración para permitir:
Si se evita el paso 1, error: prefijo independiente. aparecerá
fuente
El texto sin cifrar aquí representa información no cifrada. Desde Android 9, se recomienda que las aplicaciones llamen a las API HTTPS para asegurarse de que no haya vísperas.
Sin embargo, si aún necesitamos llamar a las API HTTP, podemos hacer lo siguiente:
Plataforma: Ionic 4
Cree un archivo llamado: network_security_config.xml en project-root / resources / android / xml
Agrega las siguientes líneas:
Ahora en project-root / config.xml , actualice las siguientes líneas:
Debería funcionar ahora.
fuente
config.xml
antes de laedit-config
etiqueta:<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
. ¡Gracias!Para solucionar el problema hay otra opción. en los recursos de archivo / android / xml / network_security_config.xml. insertar:
En mi caso, estoy usando una dirección IP, entonces la configuración básica es necesaria, pero si tienes un dominio. solo agrega el dominio.
fuente
Hoy mismo me encontré con este problema y encontré un complemento realmente ingenioso que le ahorrará la molestia de intentar permitir manualmente el tráfico de texto sin cifrar en Android 9+ para su aplicación Apache Cordova. Simplemente instale cordova-plugin-cleartext, y el complemento debería encargarse de todas las cosas detrás de escena de Android por usted.
fuente
Después de unos días de lucha, esto funciona para mí y espero que esto también funcione para ti.
agregue esto a su CONFIG.XML , en la parte superior de su código.
y esto, bajo la plataforma android.
agregue el siguiente código a este archivo "resources / android / xml / network_security_config.xml" .
fuente
trust-anchors
etiquetas eran el componente final para que todo el resto funcionara.Agregar el siguiente atributo dentro de la etiqueta de apertura <widget> funcionó para mí. Recargas simples y en vivo correctamente en un emulador de Android 9. xmlns: android = "http://schemas.android.com/apk/res/android"
fuente
edit-config
código de la respuesta aceptada (corrige elunbound prefix
error)deberías agregar
a
Me gusta esto
fuente
La siguiente es la solución que funcionó para mí. Los archivos que actualicé son los siguientes:
Los cambios en los archivos correspondientes son los siguientes:
1. config.xml
He agregado una
<application android:usesCleartextTraffic="true" />
etiqueta dentro de la<edit-config>
etiqueta en el archivo config.xml2. network_security_config.xml
En este archivo, he agregado 2
<domain>
etiquetas dentro de la<domain-config>
etiqueta, el dominio principal y un subdominio según el requisito de mi proyectoGracias @Ashutosh por brindar la ayuda.
Espero eso ayude.
fuente
Estoy usando IONIC 5.4.13, cordova 9.0.0 ([email protected])
Puede que esté repitiendo información, pero para mí el problema comenzó a aparecer después de agregar algún complemento (aún no estoy seguro). Probé todas las combinaciones anteriores, pero nada funcionó. Solo comenzó a funcionar después de agregar:
archivar en proyecto en
entonces mi archivo network_security_config.xml ahora se ve así:
Gracias a todos.
fuente
Old ionic cli (4.2) estaba causando problemas en mi caso, actualice a 5 para resolver el problema
fuente
Estamos utilizando el
cordova-custom-config
complemento para administrar nuestra configuración de Android. En este caso la solución fue agregar un nuevocustom-preference
a nuestroconfig.xml
:¿Alguien sabe cómo hacer esto solo para compilaciones de desarrollo? Estaría feliz de que las versiones de lanzamiento salieran de esta configuración
false
.(Veo las ofertas de configuración de iOS
buildType="debug"
para eso, pero no estoy seguro de si esto se aplica a la configuración de Android).fuente
@Der Hochstapler gracias por la solución.
pero en IONIC 4 alguna personalización en el proyecto config.xml funciona para mí
Agregar una línea en la etiqueta del widget
después de esto, en la etiqueta de la Plataforma de customize androide algunas líneas de verificación a continuación
añadir usesCleartextTraffic = true después networkSecurityConfig y recursos en archivos etiquetas
fuente
En un proyecto de condensador Ionic 4, cuando empaqueté e implementé en un teléfono Android para realizar pruebas, recibí este error. Se resuelve reinstalando el condensador y actualizando la plataforma Android.
fuente
Si tiene un marco Legacy Cordova que tiene problemas con el comando NPM y Cordova. Sugeriría la siguiente opción.
Crear archivo android / res / xml / network_security_config.xml -
AndroidManifest.xml -
fuente
La siguiente solución funcionó para mí
Ir a Cambiarlo
resources/android/xml/network_security_config.xml
afuente
Simplemente agregue esta línea al archivo platform / android / app / src / main / AndroidManifest.xml
<aplicación android: hardwareAccelerated = "true" android: icon = "@ mipmap / ic_launcher" android: label = "@ string / app_name" android: supportsRtl = "true" android: usesCleartextTraffic = "true" >
fuente