APP拨打电话&发短信&发邮件
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:45
在移动开辟中我们会经常须要调用手机的拨打德律风功能、发短信功能和发邮件功能,以下是我总结的办法:
//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];