我的应用程序如何跳转到iOS默认邮箱?

我想在我的应用程序中设置一个button,如果点击,应用程序可以跳转到iOS的默认邮箱。 我想这样做,所以用户可以检查和发送他们的邮件。

这个函数是否需要一个私有的API,或者这是苹果禁止的?

在此先感谢您的亲切帮助。

要从您的应用程序发送电子邮件,前2个答案之一将工作: MFMailComposeViewController或使用URLschememailto://

至于检查用户的电子邮件,目前还没有公开的方式来启动默认的iOS邮件应用程序。 然而,有一些第三方库可以让你设置你自己的邮件客户端,例如MailCore , remail或者奇尔卡特 。 我确定还有其他人,但你明白了。

这就是你想要的:

 let app = UIApplication.shared if let url = NSURL(string: "message:"), app.canOpenURL(url) { app.openURL(url) } 

canOpenURL部分检查用户是否至less有一个邮件中可以发送/接收的邮件地址。

也许你可以使用这样的urlscheme:

 NSString *email = @"mailto:?subject=YourSubject&body=MsgBody"; email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]]; 

如何使用MFMailComposeViewController ? 您可以设置其主题,收件人,邮件正文,附件,然后您可以在您的应用程序中以模态方式呈现它。 因为用户不需要离开你的应用程序,所以会更好。

 if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; mailViewController.mailComposeDelegate = self; [mailViewController setSubject:subjectString]; [mailViewController setMessageBody:messageString isHTML:YES]; [self presentViewController:mailViewController animated:YES completion:nil]; } 

只要记得设置视图控制器调用上面的函数作为MFMailComposeViewControllerDelegate的委托,以便您可以closures视图控制器之后。

 -(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { [self dismissViewControllerAnimated:YES completion:nil]; } 

关于这个类的Apple文档: http : //developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html