pyt*_*ick 43 iphone objective-c
我的iPhone应用程序正在使用MFMailComposeViewController类发送带有附件的应用内电子邮件.如果类MFMailComposeViewController的"canSendMail"方法返回true(YES),则应用程序将仅尝试显示邮件编辑器对话框.具体来说,如果以下方法返回YES,则显示邮件编写器,否则将向用户显示错误警告对话框,指出设备上没有设置电子邮件帐户:
- (BOOL)canDeviceSendEmail
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
return mailClass != nil && [mailClass canSendMail];
}
Run Code Online (Sandbox Code Playgroud)
一组测试人员报告说,即使在设备上设置了电子邮件帐户,他们也会收到此错误警告对话框.测试人员使用iPhone 3G和OS 3.1.3.因此,MFMailComposeViewController类必须存在,并且"canSendMail"方法必须返回NO.
因此,我的问题是:除了在设备上没有设置电子邮件帐户的情况下,"canSendMail"方法在其他情况下是否返回NO?
〜谢谢
byn*_*eri 70
如果设备上至少启用了一个电子邮件帐户,则以下呼叫应返回YES:
[MFMailComposeViewController canSendMail]
Run Code Online (Sandbox Code Playgroud)
相反,如果所有帐户都被禁用/删除,它将返回NO.
ken*_*ytm 10
对于+canSendMail返回YES默认帐户必须建立用于发送电子邮件.
(内部+[MFMailComposeViewController canSendMail]调用+[MailAccountProxy defaultMailAccountForDelivery],查找第一个邮件帐户-isDefaultDeliveryAccount.)
除了未在设备上设置的电子邮件帐户外,canSendMail还会NO在安装MDM配置文件并将其配置为不允许第三方应用程序发送邮件时返回.在这种情况下,你必须使用openURL:一个mailto:以推出Mail.app和可选填到,抄送,密送,主题和正文字段URL.
mailto:RFC - https://tools.ietf.org/html/rfc2368
这对我有用。
在 Device Go 设置->邮件、联系人、日历->帐户
在这里您可以看到没有添加帐户。现在添加帐户现在返回到您的应用程序,您可以发现这次返回是,您可以发送电子邮件。谢谢
| 归档时间: |
|
| 查看次数: |
27565 次 |
| 最近记录: |