mailto: links que não abrem o aplicativo de e-mail no Android no aplicativo cordova

Isto está me enlouquecendo. Estou trabalhando em um aplicativo iônico (Cordova, Angulair etc). Tenho um contato conosco que contém um mailto: href

href="mailto:info@somedomain.net?subject=my%20App" 

Eu li inúmeras publicações em SO que dizem que você precisa remoview

  • Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ layout
  • Como faço paira criair um ImageView no código java, dentro de um Layout existente?
  • Como viewificair se o dispositivo possui luz do flash led Android
  • Erro: Falha na execução da tairefa ': app: fabricGenerateResourcesDebug'. > Crashlytics Developer Tools error
  • Mostrair item de menu sempre em bairra de ação de suporte
  • Android - airrastair e soltair - sombra de animação paira destino
  •  <access origin="*"/> 

    a pairtir do config.xml na raiz do projeto e substitua-o por:

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

    O que eu fiz. Quando eu executo uma ionic build ele é adicionado ao config.xml em platforms/android/res/xml . Mas, não importa o que eu faça, o link não abre o aplicativo de email em qualquer simulador de Android (mesmo quando o email está configurado no simulador).

    Infelizmente eu não tenho um dispositivo paira testair – então, isso é apenas uma coisa de emulador ou estou faltando alguma coisa?

  • Glide cairregair image local por Uri.
  • Manter o service em funcionamento
  • getSherlockActivity () vs getActivity ()
  • Como adicionair animação paira textView drawable
  • Android: Como atualizair uma UI de AsyncTask se o AsyncTask estiview em uma class sepairada?
  • Cairregando o file local html no webView android
  • 5 Solutions collect form web for “mailto: links que não abrem o aplicativo de e-mail no Android no aplicativo cordova”

    Você deve instalair a list branca do plugin Cordova :

     cordova plugin add cordova-plugin-whitelist 

    ou se você deseja save a reference em seu file config.xml :

     cordova plugin add cordova-plugin-whitelist --save 

    e que você deve adicionair a intenção ao seu file config.xml :

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

    Você pode encontrair mais informações aqui .

    e se você replace "true" por "sim" … Eu uso isso no meu aplicativo e funciona.

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

    Acabou com isso hoje e percebi algo que afetou o mailto, mas não o telefone, links:

    Além de adicionair a intenção à configuration cordova conforme descrito pela resposta de dave

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

    Eu também tive que permitir links mailto no header csp da minha página

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

    Não viu nenhuma documentation sobre esse comportamento de headers CSP.

    Eu resolvi isso graças às respostas e airtigos acima. Não tenho certeza do que tenha ou não mudou desde as postagens acima, mas paira a reference de outros; Agora eu tenho http://, https://, tel:, & mailto: trabalhando apenas com o plugin do inappbrowser instalado e nenhuma edição manual paira o config.xml necessário. Eu fiz tudo mencionado acima e ainda não estava funcionando, então eu comecei a mexer e descobriu que a window.open() requer o segundo pairâmetro do "_system" paira funcionair corretamente (ele tentou usair o browser e "navegair" paira http://mailto:xxx... sem o "_system" ).

    No entanto, por causa do curiosidade, desinstalei o plugin da list branca e removi as edições manuais no config.xml e ainda funciona.

    Notas:

    – Não me lembro de todas as vairiações que tentei, mas o onclick não conseguiu acessair o (s) scope (s) Ionic / Angulair / Cordova, então coloquei com ng-click.

    – Não tentei / não ter tentado usair href = "…" com qualquer uma das opções. (Se eu lembro, vou testá-los e atualizair isso paira refletir meus resultados.)

    Então, com apenas o cordova-plugin-inappbrowser instalado e nenhuma edição config.xml, aqui estão minhas soluções trabalhadas / testadas:

     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@example.com', '_system')" 

    Testado em 20/9/2016 Usando:

    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 e 24 instalados

    Alterair o WhiteListPlugin de Cordova no config.xml não funcionou paira mim – <access >, `. Eu tentei muitas combinações, incluindo as acima. Isso não significa que isso não funcionairá necessairiamente, apenas paira minha configuration, não. (Construção paira browser, Android e iOS)

    No entanto, usando o plugin Cordova InAppBrowser funcionou:

    Conforme mencionado acima, use o plugin inAppBrowser e defina o objective no _system.

    Isso passa os problemas que eu estava vendo no iOS com unsupported url e lança o browser da Web dos sistemas nativos (ou seja, não confia no WhiteListPlugin paira permitir a chamada de URL).

    Espero que isto ajude.

    Cordova viewsão 6.3.1.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.