打电话的三种方法:
1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示
NSMutableString  * str=[[ NSMutableString   alloc ]  initWithFormat : @"tel:%@" , @"1333333333"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    
2,这种方法,打完电话后还会回到原来的程序,也会弹出提示,推荐这种
NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"10000"];
    UIWebView * cWebview = [[UIWebView alloc] init];
    [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
    [self.view addSubview:callWebview];

3,这种方法也会回去到原来的程序里(注意这里的telprompt),也会弹出提示,这种方法不合法,上传到AppStore无效

NSMutableString  * str=[[ NSMutableString   alloc ]  initWithFormat : @"telprompt://%@" , @" 10000 " ];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
=======================================
发短信:

iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信。2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。这对app来说非常重要。

程序外调用系统发短信

这个方法其实很简单,直接调用openURL即可:

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@sms://1333338888]];

程序内调用系统发短信(发完短信回到应用程序)

1)导入MessageUI.framework,并引入头文件:
2)实现代理方法MFMessageComposeViewControllerDelegate
  -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{[self dismissViewControllerAnimated:YES completion:nil];switch (result) {case MessageComposeResultSent://信息传送成功break;case MessageComposeResultFailed://信息传送失败break;case MessageComposeResultCancelled://信息被用户取消传送break;default:break;}
}
3)发送短信
  -(void)showMessageView:(NSArray *)phones title:(NSString *)title body:(NSString *)body
{if( [MFMessageComposeViewController canSendText] ){MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];controller.recipients = phones;controller.navigationBar.tintColor = [UIColor redColor];controller.body = body;controller.messageComposeDelegate = self;[self presentViewController:controller animated:YES completion:nil];[[[[controller viewControllers] lastObject] navigationItem] setTitle:title];//修改短信界面标题}else{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@提示信息message:@该设备不支持短信功能delegate:nilcancelButtonTitle:@确定otherButtonTitles:nil, nil];[alert show];}
}

参数phones:发短信的手机号码的数组,数组中是一个即单发,多个即群发。

4)调用发短信的方法
    [self showMessageView:[NSArray arrayWithObjects:@13888888888,@13999999999, nil] title:@test body:@你是土豪么,么么哒];

========================================

发邮件:
方法一: 使用openURL发送邮件;用户体验较差,程序会进入后台,跳转至邮件发送界面。(原生)

创建可变的地址字符串对象:

NSMutableString *mailUrl = [[NSMutableString alloc] init];

添加收件人:

NSArray *toRecipients = @[@"写你们自己的邮箱测试@qq.com"];
// 注意:如有多个收件人,可以使用componentsJoinedByString方法连接,连接符为@","
[mailUrl appendFormat:@"mailto:%@", toRecipients[0]];

添加抄送人:

NSArray *ccRecipients = @[@"1229436624@qq.com"];
[mailUrl appendFormat:@"?cc=%@", ccRecipients[0]];

View Code

添加密送人:

NSArray *bccRecipients = @[@"shana_happy@126.com"];
[mailUrl appendFormat:@"&bcc=%@", bccRecipients[0]];

View Code

添加邮件主题和邮件内容:

[mailUrl appendString:@"&subject=my email"];
[mailUrl appendString:@"&body=<b>Hello</b> World!"];
[[UIApplication  sharedApplication ]  openURL : [NSURL  URLWithString :  mailUrl ]]; 
=====
方法二:不会进入后台,使用模态弹出邮件发送视图。

二、使用MFMailComposeViewController发送邮件(原生)

使用前注意:

1)项目需要导入框架:MessageUI.framework

2)使用的Controlelr里导入头文件:#import <MessageUI/MessageUI.h>

获取用户是否设置了邮件账户:

if ([MFMailComposeViewController canSendMail]) { // 用户已设置邮件账户[self sendEmailAction]; // 调用发送邮件的代码
}

sendEmailAction方法代码:

- (void)sendEmailAction
{
  // 邮件服务器
  MFMailComposeViewController *mailCompose = [[MFMailComposeViewController alloc] init];
  // 设置邮件代理
  [mailCompose setMailComposeDelegate:self];
  // 设置邮件主题
  [mailCompose setSubject:@"我是邮件主题"];
  // 设置收件人
  [mailCompose setToRecipients:@[@"1147626297@qq.com"]];
  // 设置抄送人
  [mailCompose setCcRecipients:@[@"1229436624@qq.com"]];
  // 设置密抄送
  [mailCompose setBccRecipients:@[@"shana_happy@126.com"]];
  /**
   *  设置邮件的正文内容
   */
  NSString *emailContent = @"我是邮件内容";
  // 是否为HTML格式
  [mailCompose setMessageBody:emailContent isHTML:NO];
  // 如使用HTML格式,则为以下代码
//  [mailCompose setMessageBody:@"<html><body><p>Hello</p><p>World!</p></body></html>" isHTML:YES];
  /**
   *  添加附件
   */
  UIImage *image = [UIImage imageNamed:@"image"];
  NSData *imageData = UIImagePNGRepresentation(image);
  [mailCompose addAttachmentData:imageData mimeType:@"" fileName:@"custom.png"];
  NSString *file = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"];
  NSData *pdf = [NSData dataWithContentsOfFile:file];
  [mailCompose addAttachmentData:pdf mimeType:@"" fileName:@"dddddd"];
  // 弹出邮件发送视图
  [self presentViewController:mailCompose animated:YES completion:nil];
}

MFMailComposeViewControllerDelegate的代理方法:

- (void)mailComposeController:(MFMailComposeViewController *)controller
      didFinishWithResult:(MFMailComposeResult)result
            error:(NSError *)error
{
  switch (result)
  {
    case MFMailComposeResultCancelled: // 用户取消编辑
      NSLog(@"Mail send canceled...");
      break;
    case MFMailComposeResultSaved: // 用户保存邮件
      NSLog(@"Mail saved...");
      break;
    case MFMailComposeResultSent: // 用户点击发送
      NSLog(@"Mail sent...");
      break;
    case MFMailComposeResultFailed: // 用户尝试保存或发送邮件失败
      NSLog(@"Mail send errored: %@...", [error localizedDescription]);
      break;
  }
  // 关闭邮件发送视图
  [self dismissViewControllerAnimated:YES completion:nil];
}

====

放法三:

三、 使用第三方库SKPSMTPMessage发送邮件

使用前注意:

1)下载第三方库

2)导入类#import "SKPSMTPMessage.h"、#import "NSData+Base64Additions.h"

设置基本参数:

SKPSMTPMessage *mail = [[SKPSMTPMessage alloc] init];
[mail setSubject:@"我是主题"];  // 设置邮件主题
[mail setToEmail:@"填你们自己的@qq.com"]; // 目标邮箱
[mail setFromEmail:@"填你们自己的@qq.com"]; // 发送者邮箱
[mail setRelayHost:@"smtp.qq.com"]; // 发送邮件代理服务器
[mail setRequiresAuth:YES];
[mail setLogin:@"填你们自己的@qq.com"]; // 发送者邮箱账号
[mail setPass:@"填你们自己的"]; // 发送者邮箱密码
[mail setWantsSecure:YES];  // 需要加密
[mail setDelegate:self];

设置邮件正文内容:

NSString *content = [NSString stringWithCString:"测试内容" encoding:NSUTF8StringEncoding];
NSDictionary *plainPart = @{kSKPSMTPPartContentTypeKey : @"text/plain", kSKPSMTPPartMessageKey : content, kSKPSMTPPartContentTransferEncodingKey : @"8bit"};

添加附件(以下代码可在SKPSMTPMessage库的DMEO里找到):

NSString *vcfPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"vcf"];
NSData *vcfData = [NSData dataWithContentsOfFile:vcfPath];
NSDictionary *vcfPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/directory;\r\n\tx-unix-mode=0644;\r\n\tname=\"test.vcf\"",kSKPSMTPPartContentTypeKey,@"attachment;\r\n\tfilename=\"test.vcf\"",kSKPSMTPPartContentDispositionKey,[vcfData encodeBase64ForData],kSKPSMTPPartMessageKey,@"base64",kSKPSMTPPartContentTransferEncodingKey,nil];

执行发送邮件代码:

[mail setParts:@[plainPart, vcfPart]]; // 邮件首部字段、邮件内容格式和传输编码
[mail send];

SKPSMTPMessage代理,可以获知成功/失败进行后续步骤处理:

- (void)messageSent:(SKPSMTPMessage *)message
{
  NSLog(@"%@", message);
}
- (void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error
{
  NSLog(@"message - %@\nerror - %@", message, error);
}

===============调起QQ聊天

UIWebView *webView = [[UIWebViewalloc] initWithFrame:CGRectZero];

NSURL *url = [NSURLURLWithString:@"mqq://im/chat?chat_type=wpa&uin=QQ号&version=1&src_type=web"];//这里的QQ号是我要联系的对方qq号码

NSURLRequest *request = [NSURLRequestrequestWithURL:url];

webView.delegate = self;

[webView loadRequest:request];

[self.view addSubview:webView];

============跳转到safari浏览器

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http ://www.baidu.com"]];

iOS之中打电话/发短息/发邮件/吊起QQ聊天的方法总结相关推荐

  1. 解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法

    解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法 解决的办法:邮件\通讯录\日历 一: (1)用手机网页登录QQ邮箱网页版 (2)登录后,拉到下面,设置-账户,选择这个号码的作为默认发信帐号– ...

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

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

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

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

  4. java代码限制短信发送次数_java如何实现发短息限制日发送次数代码

    1.数据表结构 因为需要记录整天的发送记录,所以在此把数据保存到数据库中. 数据表结构如下图所示: type为验证码的类型,例如注册.重置密码等,sendTime的默认值为当前时间. 2.限制日发送次 ...

  5. AndroidStudio实现拨打电话和发短信(kotlin)

    如何利用kotlin语言实现调用系统的电话和短信功能呢,其实很简单,只要利用Intent()并且设置一下其action和data属性即可,action代表的就是行动,如打电话就是ACTION_DIAL ...

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

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

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

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

  8. iOS 打电话、发短信、写邮件、打开常用软件的几种方式

    1.打电话的三种方式 2发短信的方式 3.发邮件 //不能发邮件 if(![MFMailComposeViewController canSendMail])return; MFMailCompose ...

  9. 移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程

    移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程 原文地址:https://www.luoxiao123.cn/1120-2.html 最近逍遥乐在寻找手机网页调用系统短信 ...

最新文章

  1. Algs4-1.2.12为SmartDate添加一个方法dayOfTheWeek()
  2. mysql -p与密码之间不能有空格
  3. python该怎么自学-Python 应该怎么学?
  4. Photoshop CC2018软件安装资料及教程
  5. Netty自定义协议
  6. 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json
  7. 远程工具连接mysql备份_MySQL远程连接 备份还原
  8. 一个cube的大小位置方向不断和另一个cube重合
  9. python读取大文件内容_python读取大文件
  10. 前端开发使用react实现简易路由
  11. 为什么越有钱的人负债越多?
  12. 蓝桥杯 ALGO-88 算法训练 字串统计
  13. 不依赖第三方环境和服务
  14. 小甲鱼python课后习题及答案
  15. Delta3D(6)教程:创建游戏角色-2
  16. 九爷带你了解 nginx优化
  17. 麒麟V10SP1的国产化Qt适配
  18. java录入个人信息程序_Java:用键盘输入个人信息并输出
  19. 听课记录(09/22)
  20. 《罗马革命》豆瓣 9.1 从恺撒大帝到屋大维

热门文章

  1. 《OpenStack部署实践》
  2. MySQL中删除数据的两种方法_MySQL删除数据库的两种方法
  3. 电脑怎么恢复数据?恢复数据的3个技巧分享
  4. VMware Tools安装卸载方法
  5. 【报错】ValueError: Must pass 2-d input. shape=()
  6. Android 属性property_get/property_set
  7. 计算机协会总结大会策划书,计算机协会期末总结大会策划书.doc
  8. Python 随机生成 范围内 经纬度 坐标信息
  9. php popen使用,php中popen的使用问题
  10. 高德地图点击标记并获取标记点坐标和地址信息