【问题标题】:Let the user choose an e-mail client on iOS让用户在 iOS 上选择一个电子邮件客户端
【发布时间】:2017-07-31 12:28:57
【问题描述】:

我们希望用户能够在我们的应用中选择任何已安装的电子邮件客户端(Gmail、Yandex 等)。但 iOS 仅提供 Mail 或内置 MFMailComposeViewController。有没有办法向用户展示电子邮件客户端列表?

【问题讨论】:

标签: ios objective-c swift email


【解决方案1】:

没有办法直接实现这一点,因为 iOS 不知道“默认应用程序”的概念。您可以自己实现一个功能,检查不同 iOS 电子邮件客户端使用的各种 URL,并确定安装了哪些客户端。例如,GMail 使用googlegmail://。您还可以显示设备上的客户端菜单。

如果您不想创建自己的实现,ThirdPartyMailer 是一个可以为您执行此操作的库。

【讨论】:

  • 在这个ThirdPartyMailer中如何在邮件中附加zip文件?
  • 由于iOS14用户现在可以设置一个默认邮件应用,当你在你的应用中使用mailto://时会用到该应用
【解决方案2】:

如果您正在寻找类似于 Android 处理方式的东西,那么不,这是不可能的。一些电子邮件应用程序可能支持自定义方案 - 例如 Gmail 使用 googlegmail://(取自 this question)。

【讨论】:

    【解决方案3】:

    你应该试试这样的:

    let url = NSURL(string: "mailto:jon.doe@mail.com")
    UIApplication.sharedApplication().openURL(url)
    

    【讨论】:

    • 谢谢,但这会打开 iMail。
    • 因此您必须使用可用邮件客户端列表创建自己的 Picker。要构建此列表,您可以检查每个方案,如果 canOpenUrl: 它会告诉您用户是否安装了应用程序
    • 我想知道是否有办法展示所有可以处理“mailto”链接的应用程序。
    • 我不这么认为
    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2020-05-08
    • 2015-09-25
    • 2013-03-03
    • 2014-11-21
    • 1970-01-01
    • 2014-06-02
    相关资源
    最近更新 更多