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)
你可以在这里找到更多信息.
尝试这个:
window.location.href = "mailto:your@ema.il?subject=Works on iOS too";
Run Code Online (Sandbox Code Playgroud)
我刚刚通过上面的回复和文章解决了这个问题。自上述发布以来,我不确定有什么变化或没有变化,仅供其他参考;现在,我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
| 归档时间: |
|
| 查看次数: |
20736 次 |
| 最近记录: |