注释:要引入MessageUI.framework库

#import "ViewController.h"
#import <MessageUI/MessageUI.h>

@interface ViewController ()<MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate>

@property (strong, nonatomic) UIWebView *webView;

@end

@implementation ViewController

- (UIWebView *)webView
{
    if (!_webView)
    {
        _webView = [[UIWebView alloc] init];
    }
    
    return _webView;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    [self sendMail2];
}

/**
 URL:表示网络资源
 1) http:// -> 协议头
 2) www.wanmeixingcheng.com:8089 -> 主机名
 3) /mantisbt/my_view_page.php -> 资源路径
 */

#pragma mark --- 打电话功能

/**
 *  打完电话无法回到当前应用程序
 */
- (void)call1
{
    NSURL *url = [NSURL URLWithString:@"tel://10086"];
    [[UIApplication sharedApplication] openURL:url];
}

/**
 *  打完电话能够回到当前应用程序
 *  telprompt属于苹果的私有API,使用这个API程序无法上架!
 */
- (void)call2
{
    NSURL *url = [NSURL URLWithString:@"telprompt://10086"];
    [[UIApplication sharedApplication] openURL:url];
}

/**
 * 打完电话能够回到当前应用程序(最优方法)
 * 注意:不要将webView添加到self.view,否则会遮挡其他的界面
 */
- (void)call3
{
    NSURL *url = [NSURL URLWithString:@"tel://10086"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];
}

#pragma mark --- 发短信功能

/**
 *  简单
 *  不能返回到应用程序界面
 *  只能给一个人发送
 *  不能指定短信内容
 */
- (void)sendMessage1
{
    NSURL *url = [NSURL URLWithString:@"sms://10086"];
    [[UIApplication sharedApplication] openURL:url];
}

/**
 *  苹果推(最优方法)
 */
- (void)sendMessage2
{
    if (![MFMessageComposeViewController canSendText]) return;
 
    // 不是自己开发的视图控制器,通常都是临时使用的,统一使用Modal方式展现
    MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc] init];
    
    messageVC.recipients = @[@"10086", @"10010"];
    messageVC.subject = @"表白情书";
    messageVC.body = @"我喜欢你很久了!";
    // messageVC.attachments = @[]; // 短信附件
    messageVC.messageComposeDelegate = self;
    
    // 谁展现,谁关闭
    [self presentViewController:messageVC animated:YES completion:nil];
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    if (result == MessageComposeResultSent)
    {
        NSLog(@"发送成功");
    }
    else if (result == MessageComposeResultCancelled)
    {
        NSLog(@"发送取消");
    }
    else if (result == MessageComposeResultFailed)
    {
        NSLog(@"发送失败");
    }

[self dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark --- 发邮件功能
/**
 * 发完邮件无法回到当前应用程序
 */
- (void)sendMail1
{
    NSURL *url = [NSURL URLWithString:@"mailto://903503936@qq.com"];
    [[UIApplication sharedApplication] openURL:url];
}
/**
 *  发完邮件能回到当前应用程序(最优方法)
 */
- (void)sendMail2
{
    if (![MFMailComposeViewController canSendMail]) return;
   
    MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];
    
    [mailVC setToRecipients:@[@"903503936@qq.com"]];
    // 指定cc收件人(需要知道该邮件内容的人,抄送给经理,收件人和抄送的彼此知道这封邮件谁能收到)
    [mailVC setCcRecipients:@[]];
    // 指定bcc收件人(密送,除了发件人,其他人都不知道这封信bcc能够看到)
    [mailVC setBccRecipients:@[]];
    [mailVC setSubject:@"表白情书"];
    
    UIImage *image = [UIImage imageNamed:@"btn_image_text_weixin"];
    NSData *data = UIImagePNGRepresentation(image);
    [mailVC addAttachmentData:data mimeType:@"image/png" fileName:@"附件"];
    
    [mailVC setMessageBody:@"我喜欢你很久了!" isHTML:NO];
    mailVC.mailComposeDelegate = self;
    
    [self presentViewController:mailVC animated:YES completion:nil];
}

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    if (result == MFMailComposeResultSent)
    {
        NSLog(@"发送成功");
    }
    else if (result == MFMailComposeResultCancelled)
    {
        NSLog(@"发送取消");
    }
    else if (result == MFMailComposeResultFailed)
    {
        NSLog(@"发送失败");
    }
    else if (result == MFMailComposeResultSaved)
    {
        NSLog(@"发送保存");
    }
    
    [self dismissViewControllerAnimated:YES completion:nil];
}

转载于:https://www.cnblogs.com/dixuexiongying/p/5106771.html

iOS常用的功能(打电话、发短信、发邮件等)相关推荐

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

    今天把APP里常用小功能 例如发短信.发邮件.打电话. 全部拿出来简单说说它们的实现思路. 1.发短信 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点. 1.1.发短信(1)--URL ...

  2. web网页实现打电话,发短信,发邮件等:万能的a标签

    a标签等href属性中等URL可以是浏览器支持等任何协议 不废话,直接上代码 <a href="tel:10086">打电话10086</a> <a ...

  3. iOS之中打电话/发短息/发邮件/吊起QQ聊天的方法总结

    打电话的三种方法: 1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示 NSMutableString  * str=[[ NSMutableString   al ...

  4. 短信、邮件、通讯录、蓝牙、社交、Game Center、应用内购买、iClould、Passbook

    来源于:http://www.cocoachina.com/ios/20150129/11068.html iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会 ...

  5. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 简介 iOS中的很多小功能都 ...

  6. iOS打电话、发短信、发邮件功能

    iOS打电话.发短信.发邮件功能 今天把APP里常用小功能 例如发短信.发邮件.打电话. 全部拿出来简单说说它们的实现思路.   1.发短信 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺 ...

  7. iOS开发中打电话发短信等功能的实现

    在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...

  8. iOS 调用系统发短信以及打电话功能

    先介绍一种最简单的方法: 调用打电话功能 [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"tel://100 ...

  9. iOS 打电话、发短信、发邮箱 、跳转网站 功能(系统方法)

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 /** 注意:打电话.发短信.发邮箱 .跳转网站 功能(系统方法)---->要真机才有效果 */ 1.简单实现效果图: 2.实 ...

  10. 常用小功能(打电话、发短信、发邮件)

    打电话-⽅方法1 ● 最简单最直接的⽅方式:直接跳到拨号界⾯面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApp ...

最新文章

  1. IHelloWorldService
  2. hadoop/hive/hbase 简单区别及应用场景
  3. WCF 第八章 安全
  4. proxychains是怎么工作的
  5. 计算机工程毕业论文任务书,(计算机工程毕业设计论文任务书开题报告模板.doc...
  6. 【转】节点预测与边预测任务实践
  7. 带彩色字体的man pages(debian centos)
  8. Android拍照上传代码样例
  9. 不错的向上滚动广告代码
  10. 【Python3 爬虫】12_代理IP的使用
  11. abb机器人gsd文件_ABB机器人控制器死机故障维修
  12. matlab拟合心得体会,Matlab数据拟合工具在数学建模中的简单应用
  13. 矩形脉冲信号合成_实验10 矩形脉冲信号分解
  14. 统计每个日期新用户的次日留存率
  15. 阿里云ecs服务器买完后可以更换操作系统么?
  16. python中时间模块datetime总结
  17. 树莓派4B(ubuntu)无线网络配置
  18. python爬虫——正则表达式
  19. 产品经理(20) #PRD产品需求文档
  20. 如何实时抓取动态网页数据?

热门文章

  1. 大数字加法(C语言实现)
  2. 生鲜电商纷纷传上市,但赛道并不性感
  3. php 下载函数太慢,php的fread函数的一个巨大的坑
  4. HTML的img插入本地图片
  5. 基于药效团模型和分子动力学模拟对PTP-LAR抑制剂的研究
  6. mysql 统计请假天数_知道请假时间段、工作日和工作时长,计算请假天数
  7. Spring源码分析:Spring的循环依赖分析
  8. 树莓派外挂ESP32-USB
  9. JavaScript实现:抽奖活动
  10. Android chrome默认设置Autoplay policy