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








