SYEmailHelper
轻松检测已安装的电子邮件客户端,允许用户在发送电子邮件时选择一个。
我用它快速在我的应用中添加“联系我”功能。这将检测一组 SYEmailService
,表示
- 原生应用内编辑器
- 第三方应用
- 最后手段:将电子邮件地址复制到剪贴板,以便您的用户通过不受支持的应用发送
如果列表中没有项目,则会调用 completion block 并带有一个错误:`SYEmailHelperErrorDomain`,代码 `SYEmailHelperErrorCode_NoServiceAvailable`。
如果用户选择了一个无法打开的第三方应用,也会生成错误:`SYEmailHelperErrorCode_CouldntOpenApp`。
如果只有一个支持的服务可用,它将自动启动。
如果有多个支持的服务可用,则会显示一个操作表。
您可以将以下操作:
- 禁用“复制到剪贴板”选项
- 更改“复制到剪贴板”选项的文本
- 更改“取消”选项的文本
示例
PasteboardEmailService.name = "Copy email address to pasteboard"
EmailHelper.shared.showCopyToPasteBoard = true
EmailHelper.shared.actionSheetTitle = "Which app you wanna use?"
EmailHelper.shared.actionSheetMessage = "We support some third party apps, native email client and copying to clipboard if your favorite app is not supported"
EmailHelper.shared.actionSheetCancelButtonText = "Meh..."
EmailHelper.shared.presentActionSheet(
address: emailField.text,
subject: subjectField.text,
body: bodyField.text,
presentingViewController: self,
sender: sender)
{ (canceled, service, error) in
if (canceled) {
self.completionLabel.text = "User cancelled"
}
else if let service = service, let error = error {
self.completionLabel.text = String(format: "Service %@ encountered error: %@", service.name, error.localizedDescription)
}
else if let error = error {
self.completionLabel.text = String(format: "Encountered error: %@", error.localizedDescription)
}
else if let service = service {
self.completionLabel.text = String(format: "No error, used service %@", service.name)
}
}
如何安装
使用 Cocoapods
- 将以下代码添加到您的项目 Podfile 中
pod 'SYEmailHelper', '~> 2.2.0'
-
打开一个新终端
-
cd
到您的项目目录的根目录 -
从命令行运行
pod install
使用 Swift Package 管理器
- 打开您的项目,然后在项目导航器中点击项目名称
- 在“项目”部分下,点击您的项目名称,然后点击“包依赖”
- 点击“+”按钮,并搜索
https://github.com/dvkch/SYEmailHelper.git
- 找到该包后,请务必选择“精确版本”,并输入版本号“2.2.0”
- 按下回车键,该包将被下载并集成到您的 Xcode 项目中
导入包(SPM 和 Cocoapods)
在项目中的任何 .swift 文件顶部添加
import SYEmailHelper
不要忘了================
您需要在 Info.plist
文件中添加支持的 app 列表。以下是当前支持的 app 列表所需的条目。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlegmail</string>
<string>inbox-gmail</string>
<string>ms-outlook</string>
<string>readdle-spark</string>
</array>
屏幕截图
示例
您可以通过打开存储库工作区来打开 SPM 和 Cocoapods 示例项目,以及包本身
简单
-
克隆这个存储库
-
打开存储库文件夹
-
使用 Xcode 打开位于此存储库根目录下的
SYEmailHelper.xcworkspace
文件。
许可协议
您可以在您想要的任何项目中自由使用,可以在分发时提及我的名字,但如果它出错了,请不要指责我 :)
-- dvkch