在自己的应用程序而不是邮件应用程序中打开邮件屏幕
Open mail screen in own app instead of mail app
我使用的是最新的 Xcode
和 Swift
版本。
我正在使用以下代码启动屏幕以编写电子邮件:
UIApplication.shared.open(URL(string: "mailto:test@example.com")!)
此代码打开 Apple 邮件应用程序,创建一个新电子邮件并将 test@example.com
写入 To:
字段。
有时您会看到此 "write a new e-mail" window 在您启动它的应用程序中以叠加层的形式打开,而没有打开 Apple 邮件应用程序。
我怎样才能做到这一点?
如果您想从应用程序中发送电子邮件,可以查看 MFMailComposeViewController
您可以简单地实例化此视图控制器,将字段设置为主题、抄送...并呈现它。
摘自文档:
- 检查该服务是否可用(例如,它在模拟器中不可用)
if !MFMailComposeViewController.canSendMail() {
print("Mail services are not available")
return
}
- 实例化视图控制器,设置委托并呈现它
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self
// Configure the fields of the interface.
composeVC.setToRecipients(["address@example.com"])
composeVC.setSubject("Hello!")
composeVC.setMessageBody("Hello from California!", isHTML: false)
// Present the view controller modally.
self.present(composeVC, animated: true, completion: nil)
- 邮件发送或用户取消时关闭
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
// Check the result or perform other tasks.
// Dismiss the mail compose view controller.
controller.dismiss(animated: true, completion: nil)
}
我使用的是最新的 Xcode
和 Swift
版本。
我正在使用以下代码启动屏幕以编写电子邮件:
UIApplication.shared.open(URL(string: "mailto:test@example.com")!)
此代码打开 Apple 邮件应用程序,创建一个新电子邮件并将 test@example.com
写入 To:
字段。
有时您会看到此 "write a new e-mail" window 在您启动它的应用程序中以叠加层的形式打开,而没有打开 Apple 邮件应用程序。
我怎样才能做到这一点?
如果您想从应用程序中发送电子邮件,可以查看 MFMailComposeViewController
您可以简单地实例化此视图控制器,将字段设置为主题、抄送...并呈现它。
摘自文档:
- 检查该服务是否可用(例如,它在模拟器中不可用)
if !MFMailComposeViewController.canSendMail() {
print("Mail services are not available")
return
}
- 实例化视图控制器,设置委托并呈现它
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self
// Configure the fields of the interface.
composeVC.setToRecipients(["address@example.com"])
composeVC.setSubject("Hello!")
composeVC.setMessageBody("Hello from California!", isHTML: false)
// Present the view controller modally.
self.present(composeVC, animated: true, completion: nil)
- 邮件发送或用户取消时关闭
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
// Check the result or perform other tasks.
// Dismiss the mail compose view controller.
controller.dismiss(animated: true, completion: nil)
}