spec plugin name minsdkversion engine composer android cordova ionic-framework ionic

plugin - mailto: los enlaces no abren la aplicación de correo en Android en la aplicación cordova



cordova-plugin-email-composer (7)

¿Qué pasa si reemplaza "verdadero" con "sí"? Yo uso esto en mi aplicación y funciona.

<access origin="tel:*" launch-external="yes"/>

Esto me está volviendo loco. Estoy trabajando en una aplicación jónica (Cordova, Angular, etc.). Tengo un enlace de contacto que contiene un correo a: href

href="mailto:[email protected]?subject=my%20App"

He leído innumerables publicaciones en SO que dicen que tienes que eliminar

<access origin="*"/>

desde el archivo config.xml en la raíz del proyecto y reemplácelo con:

<access origin="mailto:*" launch-external="true" />

Lo que he hecho. Cuando ejecuto ionic build , se agrega al config.xml en las platforms/android/res/xml . Pero no importa lo que haga, el enlace no abre la aplicación de correo en ningún simulador de Android (incluso cuando el correo electrónico está configurado en el simulador).

Lamentablemente, no tengo un dispositivo para probar, ¿es esto solo una cuestión de emulador o me falta algo?


Acabo de resolver esto gracias a las respuestas y los artículos anteriores. No estoy seguro de qué ha cambiado o no ha cambiado desde las publicaciones anteriores, pero para la referencia de otros; Ahora tengo http://, https://, tel:, & mailto: trabajando con solo el complemento inappbrowser instalado y no necesito ediciones manuales de config.xml. Hice todo lo mencionado anteriormente y todavía no funcionaba, así que empecé a tocar el violín y descubrí que la llamada a window.open() requiere que el segundo parámetro de "_system" funcione correctamente (intentó utilizar el navegador y "navegar" a http://mailto:xxx... sin el "_system" ).

Sin embargo, por curiosidad, desinstalé el complemento de la lista blanca y eliminé las ediciones manuales en config.xml y todavía funciona.

Notas:

-No recuerdo todas las variaciones que probé, pero onclick no pudo acceder al (los) ámbito (s) Ionic / Angular / Cordova, así que me quedé con ng-click.

-No he / no he intentado usar href = "..." con ninguna de las opciones. (Si recuerdo, los probaré y actualizaré para reflejar mis resultados).

Por lo tanto, con solo cordova-plugin-inappbrowser instalado y sin ediciones config.xml, aquí están mis soluciones en funcionamiento / probadas:

ng-click="window.open(''http://somesite.com'', ''_system'')" ng-click="window.open(''https://google.com'', ''_system'')" ng-click="window.open(''tel:(123) 345-4567'')" ng-click="window.open(''mailto:[email protected]'', ''_system'')"

Probado el 20/09/2016 utilizando:

HTC One M8, android 6, cordova v6.3.1, cordova-plugin-inappbrowser v1.5.0, ionic v2.0.0, jdk1.8.0_101, android SDKs 21, 23 y 24 instalados


Alterar el WhiteListPlugin de Cordova en config.xml no funcionó para mí: <access >, `. Probé muchas combinaciones, incluidas las anteriores. No significa que esto no funcionará necesariamente, solo para mi configuración no lo hace. (Construyendo para navegador, Android y iOS)

Sin embargo, el uso del complemento Cordova InAppBrowser funcionó:

Como se mencionó anteriormente, use el complemento inAppBrowser y establezca el objetivo en _system.

Esto pasa por alto los problemas que estaba viendo en iOS con una unsupported url , y ejecuta el navegador web de los sistemas nativos (es decir, no se basa en WhiteListPlugin para permitir la llamada a la URL).

Espero que esto ayude.

Cordova versión 6.3.1.


Debe instalar la lista blanca de complementos de cordova :

cordova plugin add cordova-plugin-whitelist

o si desea guardar la referencia a su archivo config.xml :

cordova plugin add cordova-plugin-whitelist --save

y que tiene que agregar la intención a su archivo config.xml :

<allow-intent href="mailto:*" />

Puedes encontrar más información here .


Me encontré con esto hoy y noté algo que afectó a mailto, pero no a tel, enlaces:

Además de agregar la intención a la configuración de cordova como se describe en la respuesta de dave

<allow-intent href="mailto:*" />

También tuve que permitir los enlaces mailto en el encabezado csp de mi página

<meta http-equiv="Content-Security-Policy" content="default-src ''self'' mailto:*">

No vi ninguna documentación sobre este comportamiento de los encabezados CSP.


Prueba esto:

window.location.href = "mailto:[email protected]?subject=Works on iOS too";


Solo además de usar la WhiteListPlugin de Cordova ;

Funcionó para mí de esta manera: en config.xml

<access origin="*"/> <access origin="mailto:*" launch-external="true" /> <allow-intent href="mailto:*" launch-external="yes"/>

Y especialmente para ios agregar:

<platform name="ios"> <allow-navigation href="mailto:*" launch-external="yes"/> ... <platform name="ios">