APP拨打电话&发短信&发邮件 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

APP拨打电话&发短信&发邮件

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:34

在移动开辟中我们会经常须要调用手机的拨打德律风功能、发短信功能和发邮件功能,以下是我总结的办法:
//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];


相关案例查看更多