标签:
APP内部调用短信、电话、邮件
在APP开发中,很多时候需要在APP内部实现短信验证、分享,以及切换电话拨打等功能,这也就会调用到系统相对应得功能体系;
在iOS开发中一般会出现两种模式:
1)在APP中实现短信发送 和 电话拨打功能,完成后会停留在短信 和 电话界面
2)在APP中实现短信发送 和 电话拨打,完成后可以跳转到原来的APP界面,进行下一步操作。
一 、发短信
1)直接拨号,拨号完成后会停留在通话记录中
方法:
NSURL *url = [NSURL URLWithString:@"sms://10010"];
[[UIApplication sharedApplication] openURL:url];
优点 : 简单
缺点 : 不能指定短信内容,而且不能跳转回原APP界面
2)使用MFMessageComposeViewController ---------(需导入MessageUI框架 )
方法:(需遵循短信代理----------MFMessageComposeViewControllerDelegate)
//邀请手机联系人 //判断设备能否发送短信 if (![MFMessageComposeViewController canSendText]) { return; } // 初始化短信控制器 MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc]init]; // 设置委托对象 messageVC.messageComposeDelegate = self; NSString *text = [NSString stringWithFormat:@"[%@]邀请你注册IBOS · 酷办公加入“%@”,点击加入http://www.ibos.cn/?corp=%@", getMyInfo().realname, getMyInfo().corpname, getMyInfo().corpcode]; //短信内容 messageVC.body = text;// (注:如果短信中包含后网址,能自动识别,仍可以发送短信,收件人可以点击触发链接,实现跳转) //设置收件人(可以不设置,短信界面能跳转到系统通讯录,自行选择人选) controller.recipients = [@"10010", @"10086"]; //显示短信控制器 [self presentViewController:messageVC animated:YES completion:nil];
短信发送完成后 ,调用代理方法关闭短信界面
:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled://取消 { break; } case MessageComposeResultSent://发送 { break; } case MessageComposeResultFailed://失败 { UIAlertView *alertV = [[UIAlertView alloc]initWithTitle:@"提示" message:@"发送短信错误,请重发!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil]; [alertV show]; break; } default: break; } // 关闭短信界面 [controller dismissViewControllerAnimated:YES completion:nil]; }
二 、打电话
标签:
原文地址:http://www.cnblogs.com/AllenLAS/p/4588404.html