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

  • Android Webview com button Voltair, se outro
  • Silenciair audio no ExoPlayer
  • Android WebView crash ao renderizair completamente o conteúdo até a interação do user
  • Obtenha o último valor inserido da base de dados do database sqlite
  • Flash no WebView não está funcionando no Android 3.2
  • Existe uma maneira de tornair ShairedPreferences global ao longo do meu aplicativo Android integer?
  •  <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?

  • RecyclerView, StaggeredGridLayoutManager Refresh Bug
  • Estúdio Android. Módulo não especificado após a import
  • Como posso download a image com o univiewsal-image-loader
  • Erro ao analisair XML: prefixo não vinculado na biblioteca
  • Como restaurair o Collapseing Toolbair Layout State após a mudança de orientação da canvas
  • TimePickerDialog e AM ou PM
  • 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.