应用内电子邮件不适用于 iOS 设备/模拟器 iOS6

Posted

技术标签:

【中文标题】应用内电子邮件不适用于 iOS 设备/模拟器 iOS6【英文标题】:In-App email Not working on iOS Device/Simulator iOS6 【发布时间】:2012-12-18 17:11:48 【问题描述】:

我正在尝试为我的应用程序实现应用内电子邮件,但遇到了一个严重的问题。当按下按钮打开应用内电子邮件时,它工作得很好。以下是我遇到的问题:

当我点击取消时,它会要求我保存/删除取消取消的草稿。如果我点击“删除草稿”,操作表就会消失,但邮件编辑器会保持打开状态。我可以与它交互并一遍又一遍地点击发送,它会继续发送电子邮件。但是取消按钮不能再交互了。 “保存草稿”按钮保存电子邮件的草稿,但作曲家仍在运行,我可以与取消按钮进行交互。

这是我正在使用的代码:

    - (IBAction)sendEmail:(id)sender 

    //Set up of e-mail
    sendMail = [[MFMailComposeViewController alloc] init];
    sendMail.mailComposeDelegate = self;

    //Set the subject
    [sendMail setSubject:@"Demo attachment"];

    //To recipients
    NSArray *toRecepients = [[NSArray alloc] initWithObjects:@"exampleEmail@email.com", @"exampleEmail2@email.com", nil];
    [sendMail setToRecipients:toRecepients];
    //[sendMail setBccRecipients:toRecepients];
    //[sendMail setCcRecipients:toRecepients];

    //Add message to the body
    NSString *emailBody = @"This is a test email with an attachment.\n";
    [sendMail setMessageBody:emailBody ishtml:YES];

    //Include an attachment
    //NSData *pdfData = [NSData dataWithContentsOfFile:@"demo.pdf"];

    //[sendMail addAttachmentData:pdfData mimeType:@"file/pdf" fileName:@"Some file"];
    [self presentViewController:sendMail animated:YES completion:NULL];

ios 6 上部署应用并使用 iPhone 5 作为测试设备。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

在适当的位置为您的委托添加[self dismissModalViewControllerAnimated:YES];

- (void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError*)error

    //.. other completion code

    [self dismissModalViewControllerAnimated:YES];

【讨论】:

以上是关于应用内电子邮件不适用于 iOS 设备/模拟器 iOS6的主要内容,如果未能解决你的问题,请参考以下文章

IOS中的Facebook登录适用于模拟器,但不适用于安装了本机应用程序的设备

本地通知适用于 ios 模拟器但不适用于设备

应用内购买适用于 iOS 3 和 5,但不适用于 iOS 4

iOS 7 Beta - 应用内测试不起作用

iOS AppLinks 仅不适用于邮件应用程序

Adobe ANE 适用于 iOS 和 Android 设备,但不适用于 AIR 模拟器