iOS- 如何将应用集成发短信、发邮件、打电话

1.发短信           
实现打电话的功能,主要二种方法,下面就分别说说它们的优缺点。

1.1.发短信(1)——URL        
// 直接拨号,拨号完成后会停留在通话记录中

a、方法:
NSURL *url = [NSURL URLWithString:@"sms://10010"];

[[UIApplication sharedApplication] openURL:url];

b、优点:
–简单
c、缺点:
–不能指定短信内容,而且不能自动回到原应用

1.2发短信(2)——MessageUI框架       
如果自定义短信,需要使用一个框架MessageUI。

优点

a. 从应用出去能回来

b. 可以多人

c. 可以自定义消息,消息支持HTML格式的

而且如果在苹果系统中,如果彼此的手机都是iOS设备,并且开通了iMessage功能,彼此之间的短信是走网络通道,而不走运营商的通道!

- (void)msg2
{
// 判断用户设备能否发送短信
if (![MFMessageComposeViewController canSendText]) {
return;
}

// 1. 实例化一个控制器

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

// 2. 设置短信内容   
// 1) 收件人
controller.recipients = @[@"10010", @"10086"];

// 2) 短信内容
controller.body = @"给您拜个晚年,祝您晚年快乐!";

// 3) 设置代理
controller.messageComposeDelegate = self;

// 3. 显示短信控制器
[self presentViewController:controller animated:YES completion:nil];
}

记得发完短信记得调用代理方法关闭窗口

#pragma mark 短信控制器代理方法
/**
短信发送结果

MessageComposeResultCancelled, 取消
MessageComposeResultSent, 发送
MessageComposeResultFailed 失败
*/
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
NSLog(@"%d", result);

// 在面向对象程序开发中,有一个原则,谁申请,谁释放!
// *** 此方法也可以正常工作,因为系统会将关闭消息发送给self
// [controller dismissViewControllerAnimated:YES completion:nil];

// 应该用这个!!!
[self dismissViewControllerAnimated:YES completion:nil];
}

2.发邮件            

- (void)sendmail
{
// 1. 先判断能否发送邮件
if (![MFMailComposeViewController canSendMail]) {
// 提示用户设置邮箱
return;
}

// 2. 实例化邮件控制器,准备发送邮件
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];

// 1) 主题 xxx的工作报告
[controller setSubject:@"我的工作报告"];
// 2) 收件人
[controller setToRecipients:@[@"[email protected]"]];

// 3) cc 抄送
// 4) bcc 密送(偷偷地告诉,打个小报告)
// 5) 正文
[controller setMessageBody:@"这是我的<font color=\"blue\">工作报告</font>,请审阅!<BR />P.S. 我的头像牛X吗?" isHTML:YES];

// 6) 附件
UIImage *image = [UIImage imageNamed:@"头像1.png"];
NSData *imageData = UIImagePNGRepresentation(image);
// 1> 附件的二进制数据
// 2> MIMEType 使用什么应用程序打开附件
// 3> 收件人接收时看到的文件名称
// 可以添加多个附件
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"头像.png"];

// 7) 设置代理
[controller setMailComposeDelegate:self];

// 显示控制器
[self presentViewController:controller animated:YES completion:nil];
}

同样要记得发完邮件记得调用代理方法关闭窗口

#pragma mark - 邮件代理方法
/**
MFMailComposeResultCancelled, 取消
MFMailComposeResultSaved, 保存邮件
MFMailComposeResultSent, 已经发送
MFMailComposeResultFailed 发送失败
*/
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
// 根据不同状态提示用户
NSLog(@"%d", result);

[self dismissViewControllerAnimated:YES completion:nil];
}

3.打电话           
打电话有三种方式可以实现,优缺点也各不同

3.1.打电话不回引用           

- (void)tel1
{
// 直接拨号,拨号完成后会停留在通话记录中
NSURL *url = [NSURL URLWithString:@"tel://10010"];

[[UIApplication sharedApplication] openURL:url];
}

3.2.出去打电话然后回来        

- (void)tel2
{
// 但是:telprompt协议属于苹果的私有协议,一旦程序中使用了此协议,程序无法上架
// 针对越狱的机器开发的系统,可以使用此协议
NSURL *url = [NSURL URLWithString:@"telprompt://10010"];

[[UIApplication sharedApplication] openURL:url];
}

3.3借助UIWebView打电话(会回来)  
一般都是用这种,解决了不越狱的问题。

- (void)tel3
{
// 提示:不要将webView添加到self.view,如果添加会遮挡原有的视图
// 懒加载
if (_webView == nil) {
_webView = [[UIWebView alloc] init];
}
NSLog(@"%p", _webView);

// _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
// [self.view addSubview:_webView];

NSURL *url = [NSURL URLWithString:@"tel://10010"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[_webView loadRequest:request];
}

iOS- 如何将应用集成发短信、发邮件、打电话

时间: 2024-08-01 22:41:04

iOS- 如何将应用集成发短信、发邮件、打电话的相关文章

ios 设置亮度、声音;调用发短信、邮件、打电话

一,设置亮度 [[UIScreen mainScreen] setBrightness:0.5];//0.0~1.0 二,设置声音 1,添加 MediaPlayer.framework 框架 2,在需要的文件中导入头文件,#import <MediaPlayer/MediaPlayer.h> 3,[[MPMusicPlayerController applicationMusicPlayer] setVolume: 0.5];//0.0~1.0 三,调用发短信.邮件.打电话 1.调用 自带ma

调用系统的打电话,发短信,邮件,蓝牙

在开发某些应用时可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,此时你可以直接使用UIApplication的OpenURL:方法指定特定的协议来打开不同的系统应用.常用的协议如下: 打电话:tel:或者tel://.telprompt:或telprompt://(拨打电话前有提示) 发短信:sms:或者sms:// 发送邮件:mailto:或者mailto:// 启动浏览器:http:或者http:// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)

结语: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->options…--> users permitions. 3.1 Send SMS 3.2 Read Phone State权限:将其变成 true即可. 如果 read phone state为 false,程序将启动不了,一直黑屏(我没试,原作者是这么说的,你如果没事可以试一试,试过记得给我说一声哦).

iOS打电话发短信发邮件总结

今天把APP里常用小功能 例如发短信.发邮件.打电话. 全部拿出来简单说说它们的实现思路. 1.发短信 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点. 1.1.发短信(1)——URL // 直接拨号,拨号完成后会停留在通话记录中 1.方法: NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIApplication sharedApplication] openURL:url]; 2.优点: –简单 3.缺点:

【学习ios之路:UI系列】实现打电话,发短信,发邮件功能

①发短信 1.创建Button ,添加button的响应事件 UIButton *callButton = [UIButton buttonWithType:UIButtonTypeCustom]; callButton.frame = CGRectMake(80, 150, 80, 80); callButton.backgroundColor = [UIColor cyanColor]; [callButton setTitle:@"短信" forState:UIControlSt

打电话,发短信,发邮件,app跳转

1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739"]; [[UIApplication sharedApplication] openURL:url]; } - (IBAction)callPhone2:(id)sender { NSURL *url = [NSURL URLWithString:@"telprompt://185004

如何实现打电话,发短信,发邮件,打开网页功能

我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备份,以后忘了,自己也可以捡起来看看. 首先,说说如何调用浏览器打开网页. 当然这个就很简单了,只需要短短两句话就可以实现 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; // [[UIApplication share

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

在移动开发中我们会经常需要调用手机的拨打电话功能.发短信功能和发邮件功能,以下是我总结的方法: //1.打电话 //方法1 最常用方法 NSURL *telUrl = [NSURL URLWithString:"tel://13161906451"]; UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; [webView loadRequest:[NSURLRequest requestWithURL:t

iOS开发——发短信,邮件

在IOS开发中,有时候我们会需要用到邮件发送的功能.比如,接收用户反馈和程序崩溃通知等等,这个功能是很常用的.在苹果系统中,如果彼此的手机都是iOS设备,并且开通了iMessage功能,那么彼此之间的短信是走网络通道,而不走运营商的通道,短信也顺便写写喽. 还是老规矩,直接上代码. // //  ViewController.m //  Demo-testEmail // //  Created by yyt on 16/5/16. //  Copyright © 2016年 yyt. All

IOS中调用系统的电话、短信、邮件、浏览功能

iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评论, 收藏, 编辑 --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: 调用系统应用 使用系统服务目 录 短信与邮件 通讯录