如何以编程方式显示邮件设置页面?
在我的应用中,我向用户提供了反馈选项。点击反馈按钮时,我会检查设备中是否有可用的邮件帐户。这可通过以下检查完成:
if ([MFMailComposeViewController canSendMail])
{
// Actions to send mail
}
else
{
//Actions to show an error message by UIAlertView
}
警告信息如下:
如果用户点击此UIAlertView
中的确定按钮,我想转到设置菜单中的邮件设置页面。也就是说,我想显示以下页面:
是否可以通过编程方式进行此导航?
答案 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
}
}