//1.打电话 //方法1 最常用方法 NSURL *telUrl = [NSURL URLWithString:"tel://13161906451"]; UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; [webView loadRequest:[NSURLRequest requestWithURL:telUrl]]; //方法2 弊端:这个方法打电话结束后停留在拨号界面 NSURL *telUrl = [NSURL URLWithString:"tel://13161906451"]; [[UIApplication sharedApplication] openURL:telUrl]; //方法3 拨打电话之前会询问用户是否拨打,挂断电话之后会返回应用 #warn 不能用,审核不通过,私有API NSURL *telUrl2 = [NSURL URLWithString:"telprompt://13161906451"]; [[UIApplication sharedApplication] openURL:telUrl2]; //2.发邮件 //方法1 //如果想指定邮件内容,那就得使用MessageUI框架 //包含主头文件 #import <MessageUI/MessageUI.h> // 不能发邮件 if (![MFMailComposeViewController canSendMail]) return; // 当邮件发送成功或者失败或者取消之后会回到原始程序 MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init]; // 设置邮件主题 [vc setSubject:@"会议"]; // 设置邮件内容 [vc setMessageBody:@"今天下午开会吧" isHTML:NO]; // 设置收件人列表 [vc setToRecipients:@[@"643055866@qq.com"]]; // 设置抄送人列表 [vc setCcRecipients:@[@"1234@qq.com"]]; // 设置密送人列表 [vc setBccRecipients:@[@"56789@qq.com"]]; // 添加附件(一张图片) UIImage *image = [UIImage imageNamed:@"lufy.jpeg"]; NSData *data = UIImageJPEGRepresentation(image, 0.5); //去百度上搜mimeType [vc addAttachmentData:data mimeType:@"image/jepg" fileName:@"lufy.jpeg"]; // 设置代理 vc.mailComposeDelegate = self; // 显示控制器 [self presentViewController]; //邮件发送后的代理方法回调,发完后会自动回到原应用 - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { // 关闭邮件界面 [controller dismissViewControllerAnimated:YES completion:nil]; if (result == MFMailComposeResultCancelled) { NSLog(@"取消发送"); } else if (result == MFMailComposeResultSent) { NSLog(@"已经发出"); } else { NSLog(@"发送失败"); } } //方法2 弊端:不会返回应用程序 NSURL *emailUrl = [NSURL URLWithString:"mailto://1032172045@qq.com"]; [[UIApplication sharedApplication] openURL:emailUrl]; //3.发短信 //方法1 //如果想指定短信内容,那就得使用MessageUI框架 //包含主头文件 #import <MessageUI/MessageUI.h> //如果不能发送直接返回,模拟器不能发短信,调用发短信会崩溃 if(![MFMessageComposeViewController canSendText]) return; //显示发短信的控制器 MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init]; // 设置短信内容 vc.body = @"吃饭了没?"; // 设置收件人列表 vc.recipients = @[@"10010", @"02010010"]; // 设置代理,这个代理会使右上角出现取消按钮 vc.messageComposeDelegate = self; // 显示控制器 [self presentViewController:vc animated:YES completion:nil]; //代理方法,当短信界面关闭的时候调用,发完后会自动回到原应用 - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { // 关闭短信界面 [controller dismissViewControllerAnimated:YES completion:nil]; if (result == MessageComposeResultCancelled) { NSLog(@"取消发送"); } else if (result == MessageComposeResultSent) { NSLog(@"已经发出"); } else { NSLog(@"发送失败"); } } // 显示控制器 [self presentViewController:vc animated:YES completion:nil]; //方法2 弊端:发送结束后不能返回到应用 NSURL *smslUrl = [NSURL URLWithString:"sms://13161906451"]; [[UIApplication sharedApplication] openURL:smslUrl];
原文地址:http://blog.csdn.net/u014656271/article/details/42433565