即使用户已卸载 Mail.app,如何在我的应用程序中添加电子邮件链接仍然有效?

Posted

技术标签:

【中文标题】即使用户已卸载 Mail.app,如何在我的应用程序中添加电子邮件链接仍然有效?【英文标题】:How do I add an email link in my app that works even if the user has uninstalled Mail.app? 【发布时间】:2017-05-28 08:52:27 【问题描述】:

我想在我的应用中提供一个电子邮件链接,供用户发送反馈。我可以使用 mailto 链接,但如果用户卸载了 Mail.app(内置邮件应用程序),ios 会弹出一个对话框说它已被卸载,并告诉用户如何恢复它。

我不希望这种情况发生。相反,我想使用另一个电子邮件应用程序(如果存在),例如 Gmail 或 Inbox。如果有多个第三方电子邮件应用程序,用户应该有一个选择,而不是应用程序随机选择一个。

我该怎么做?

理想情况下,以一种适用于所有应用的方式,而不是硬编码特定的应用来检查,例如:

if Inbox is installed 
  open Inbox
 else if Gmail is installed 
  open Gmail
 else if Outlook is installed 
  open Outlook

...如果用户使用这三个以外的应用程序,这显然不起作用。

【问题讨论】:

【参考方案1】:

您需要为 gmail 和 Outlook 添加查询方案。 然后您需要检查您的应用程序是否可以打开它。 如果您的应用程序可以继续运行,则在 elseif 条件下检查其他应用程序。

像这样..

NSString *gmailmURL = @"googlegmail://";
NSString *outllokURL = @"outlook://";

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:gmailURL]])
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:gmailmURL]];
else if ([[UIApplication sharedApplication] 
   canOpenURL:[NSURL URLWithString:outlookURL]])
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:outllokURL]];

您可以通过附加这样的网址在 gmail 中添加更多信息

googlegmail://co?subject=Example&body=ExampleBody

outlook 也必须有这样的东西......

【讨论】:

以上是关于即使用户已卸载 Mail.app,如何在我的应用程序中添加电子邮件链接仍然有效?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 CIFS 连接卸载

警报,即使应用程序已关闭

Amazon SNS - 如何知道该应用程序已被卸载?

即使没有真实用户,如何在我的 Linux 服务中为 Asterisk 设置环境变量?

卸载应用时 GCM 未取消注册设备

即使在离线时如何缓存网页以在我的 android 应用程序中使用