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

时间:2011-05-16 10:11:36

标签: iphone email

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

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

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

警告信息如下:

No mail account alert

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

mail setup page

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

6 个答案:

答案 0 :(得分:6)

当用户点击警报视图“确定”按钮时,请使用以下代码。

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"mailto:test@test.com"]];

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

希望这会有所帮助:)

答案 1 :(得分:2)

您必须使用MFMailComposeViewController类和MFMailComposeViewControllerDelegate协议

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

  

首先发送消息:

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];
  

然后用户和你一起完成工作   及时获得委托回调:

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

答案 2 :(得分:0)

添加messageUI框架。 在.h文件中

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
 add <MFMailComposeViewControllerDelegate> like
@interface ManageRequestViewController : UIViewController<MFMailComposeViewControllerDelegate>

in .m file

if([MFMailComposeViewController canSendMail]){

            MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init];
            mail.mailComposeDelegate=self;
            [mail setSubject:@"your subject"];          
            [mail setMessageBody:@"mail!" isHTML:NO];
            [self presentModalViewController:mail animated:YES];
            [mail release];         
        }

- (void)mailComposeController:(MFMailComposeViewController*)mailController didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
        [self dismissModalViewControllerAnimated:YES];

}

答案 3 :(得分:0)

您对特定问题的简短回答是,无法使用iOS SDK以编程方式启用邮件帐户创建。

答案 4 :(得分:0)

无法完成。即使有一个界面来启动设置应用程序(我不知道有没有),也无法指定该应用程序的哪个屏幕。这不像一个网站,每个页面都有一个URL。

答案 5 :(得分:0)

- (IBAction为)showPicker:(ID)发送方     {

    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)

    {

        // We must always check whether the current device is configured for sending emails

        if ([mailClass canSendMail])
        {

            [self displayComposerSheet];

        }
        else

        {
            [self launchMailAppOnDevice];
        }
    }
    else
    {
        //mail not config
    }
}