公司项目需求需要做群发短信的功能,于是开始了解一下短信这一块,并作一下笔记。iOS开发中使用发短信功能一般有两种方法,一:通过[UIApplication sharedApplication]openURL:@"",直接调用系统的短信功能,这种方式无法在应用内指定短信内容;二:利用MessageUI进行操作,可以做一些自定义的设置。如果彼此的手机都是iOS设备,并且开通了iMessage功能,彼此之间的短信是走网络通道,而不走运营商的通道!
第二种方式用到MessageUI.framework框架,包括MFMailComposeViewController和MFMessageComposeViewController两个类,前者主要用于邮件,后者用于短信。
操作步骤:
1. 导入框架:MessageUI.framework
2. #import <MessageUI/MessageUI.h>
3. 添加协议:<MFMailComposeViewControllerDelegate>
pragma mark - Click Action
(void) showMessageViewAction
{//判断设备能否发短信
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];//设置代理 picker.messageComposeDelegate = self; //默认信息内容 picker.body = @"Hello World"; //默认发件人 picker.recipients = [NSArray arrayWithObject:@"12345678910"]; [self presentViewController:picker animated:YES completion:nil];
}else{
UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示信息" message:@"该设备不支持短信" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alterView show];
}
}
pragma mark - MFMessageComposeViewController Delegate
(void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{switch (result) {
case MessageComposeResultCancelled:
NSLog(@”取消发送”);
break;
case MessageComposeResultSent:
NSLog(@”发送成功”);
break;
case MessageComposeResultFailed:
NSLog(@”发送失败”);
break;
default:
break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}