如何在iPhone上以编程方式显示邮件设置页面?

6 email iphone

如何以编程方式显示邮件设置页面?

在我的应用程序中,我向用户提供了反馈选项.点击反馈按钮时,我会检查设备中是否有可用的邮件帐户.这是通过以下检查完成的:

if ([MFMailComposeViewController canSendMail])
{
    // Actions to send mail
}
else
{
    //Actions to show an error message by UIAlertView
}
Run Code Online (Sandbox Code Playgroud)

警报消息将如下所示:

没有邮件帐户提醒

如果用户点击此处的确定按钮UIAlertView,我想转到设置菜单中的邮件设置页面.也就是说,我想显示以下页面:

邮件设置页面

是否可以通过编程方式进行此导航?

Bas*_*eer 6

当用户单击警报视图"确定"按钮时,请使用以下代码.

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"mailto:test@test.com"]];
Run Code Online (Sandbox Code Playgroud)

这将打开本机Mail应用程序主页,允许用户添加新的邮件帐户.

希望这有助于:)

  • 只是对代码实际工作的一个小修正 - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:test@test.com"]] (2认同)

Jha*_*iya 2

你必须使用MFMailComposeViewController类和MFMailComposeViewControllerDelegate协议,

PeyloW 在他的回答中为此提供了以下代码:

首先发送消息:

MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO]; 
[self presentModalViewController:controller animated:YES];
[controller release];
Run Code Online (Sandbox Code Playgroud)

然后用户完成工作,您会及时收到委托回调:

- (void)mailComposeController:(MFMailComposeViewController*)controller  
          didFinishWithResult:(MFMailComposeResult)result 
                        error:(NSError*)error;
{
  if (result == MFMailComposeResultSent) {
    NSLog(@"It's away!");
  }
  [self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)