【发布时间】:2016-06-13 22:17:00
【问题描述】:
既然可以在 iOS 10 中删除 Apple 的“邮件”应用等应用,那么当开发者尝试初始化并呈现 MFMailComposeViewController 而设备上未安装和配置默认邮件应用时会发生什么?
如果应用崩溃,检查这种情况的最佳方法是什么?
【问题讨论】:
标签: ios email ios10 mfmailcomposeviewcontroller
既然可以在 iOS 10 中删除 Apple 的“邮件”应用等应用,那么当开发者尝试初始化并呈现 MFMailComposeViewController 而设备上未安装和配置默认邮件应用时会发生什么?
如果应用崩溃,检查这种情况的最佳方法是什么?
【问题讨论】:
标签: ios email ios10 mfmailcomposeviewcontroller
在 iOS 12 及更高版本上,即使未安装邮件应用程序,canSendMail() 也会返回 true。将显示MFMailComposeViewController,但用户将无法发送邮件。
在低于 12 的 iOS 版本上:
看起来MFMailComposeViewController.canSendMail() 将返回 false,MFMailComposeViewController() 将导致崩溃 (EXC_BAD_ACCESS)。使用canSendMail() 检查确定设备是否可以显示MFMailComposeViewController。
【讨论】:
canSendMail() 将返回 true,即使未安装邮件应用程序也是如此。这将允许 MFMailComposeViewController 出现,但发送按钮被禁用。