mailto:链接无法在cordova应用程序中在Android上打开邮件应用程序

Jam*_*s J 24 android cordova ionic-framework ionic

这真让我抓狂.我正在研究Ionic应用程序(Cordova,Angular等).我有一个联系我们链接,其中包含mailto:href

href="mailto:info@somedomain.net?subject=my%20App"
Run Code Online (Sandbox Code Playgroud)

我已经阅读了无数帖子,说你必须删除

<access origin="*"/>
Run Code Online (Sandbox Code Playgroud)

从项目根目录中的config.xml中替换它:

<access origin="mailto:*" launch-external="true" />
Run Code Online (Sandbox Code Playgroud)

我做过的.当我运行ionic build它时会被添加到config.xml中platforms/android/res/xml.但无论我做什么,链接都不会在任何Android模拟器上打开邮件应用程序(即使在模拟器中配置了电子邮件).

可悲的是,我没有可以测试的设备 - 所以这只是一个模拟器的事情还是我错过了什么?

Lef*_*tyX 27

您必须安装cordova插件白名单:

cordova plugin add cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)

或者如果要保存对config.xml文件的引用:

cordova plugin add cordova-plugin-whitelist --save
Run Code Online (Sandbox Code Playgroud)

并且您必须将意图添加到config.xml文件:

<allow-intent href="mailto:*" />
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多信息.

  • 当我在android 5.0上使用cordova 6.4.0和cordova-plugin-whitelist 1.3.1尝试这种方法时,我最终会弹出"不支持的操作 - 目前不支持此操作" (2认同)

cat*_*ore 7

尝试这个:

window.location.href = "mailto:your@ema.il?subject=Works on iOS too";
Run Code Online (Sandbox Code Playgroud)

  • 我的天啊。我尝试了此页面上的所有其他内容,这对我有用。很简单。应该是公认的答案。 (3认同)

Cha*_*703 5

我刚刚通过上面的回复和文章解决了这个问题。自上述发布以来,我不确定有什么变化或没有变化,仅供其他参考;现在,我http://, https://, tel:, & mailto:只安装了inappbrowser插件,而无需手动编辑config.xml。我做了上面提到的所有事情,但仍然没有用,所以我开始摆弄一下,发现我的window.open()呼叫要求的第二个参数"_system"才能正常工作(它试图使用浏览器并“导航”到http://mailto:xxx...不带"_system"标志的位置)。

但是,出于好奇的缘故,我卸载了白名单插件,并删除了config.xml中的手动编辑,但仍然可以使用。

笔记:

-我不记得尝试过的所有变体,但是onclick无法访问Ionic / Angular / Cordova示波器,因此我坚持使用ng-click。

-我没有/尚未尝试将href =“ ...”与任何选项一起使用。(如果我还记得,我将对其进行测试并对其进行更新以反映出我的结果。)

因此,安装了cordova-plugin-inappbrowser,没有进行 config.xml编辑,这是我的工作/测试解决方案:

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')"
Run Code Online (Sandbox Code Playgroud)

经过测试的9/20/2016使用:

已安装HTC One M8,android 6,cordova v6.3.1,cordova-plugin-inappbrowser v1.5.0,ionic v2.0.0,jdk1.8.0_101,Android SDK 21、23和24