EmailLink

一个 SwiftUI 组件,用于更好地处理电子邮件链接。EmailLink 不仅会使用正确的默认客户端,还会提示用户选择要使用的客户端(如果他们安装了多个客户端)。

平台

已在 iOS 16.0 上测试,但应适用于 iOS 和 iPadOS 13.0 及更高版本。

设置

  1. 将此软件包添加到你的 Swift Package Dependencies 中
  2. 在你的 Info.plist 中将 URL 方案列入白名单。有关更多信息,请参阅方案部分。
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>googlegmail://</string>
        <string>ms-outlook://</string>
        <string>readdle-spark://</string>
        <string>ymail://</string>
        <string>airmail://</string>
    </array>
  3. 在你想要使用它的地方添加此组件
    EmailLink("contact@example.com") {
        Text("Contact Us")
    }    

参数

以下是 EmailLink 上可用的参数。

参数 类型 必需 备注
to String 电子邮件发送至何处
subject String 要填充的主题
body String 要填充的电子邮件正文
color UIColor ActionSheet 按钮的颜色
label View 要显示为 EmailLink 的视图

方案

为了使 EmailLink 正常工作,你必须在你的 Info.plist 中包含 LSApplicationQueriesSchemes 以及相关的值。支持最常见的 iOS 电子邮件客户端。如果此处未列出电子邮件客户端,它将默认为内置的 iOS mailto: 方案,该方案将使用系统默认应用程序。

问题

此软件包的主要原因是处理 iOS 默认邮件应用程序的错误实现,有时它实际上不会尝试打开。因此,mailto: 方案可能会也可能无法工作,具体取决于该 iOS 版本是否与默认应用程序设置一起使用。这应该不是问题,因为 EmailLink 可以处理大多数客户端,但是,我想提及一下,以防出现此问题。

许可证

MIT 许可证

版权所有 (c) 2022 Joe Scotto

特此授予任何人免费获得本软件和相关文档文件(“软件”)副本的许可,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向提供本软件的人员提供以下条件

上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他处理引起的、与之相关的或与之相关的责任。