发送短信功能有两种方式
方式一
1 "sms://"后接电话号码
2 只有接收短信的电话号码,没有接收短信内容
3 当前应用会退出,取消或发送短信后需要重新打开应用
NSURL *url = [NSURL URLWithString:@"sms://13800138000"];
[[UIApplication sharedApplication] openURL:url];
方式二
使用MFMessageComposeViewController来显示图形界面。
iOS4.0及以上版本才支持发送短信功能。若在iOS3.0上运行的话,会提示dyld: Symbol not found: _OBJC_CLASS_$_MFMessageComposeViewController .解决方案:
MessageUI.framework的引入类型应选择weak(在target -> Get Info -> General -> Linked Libraries -> MessageUI.framework -> Type 里修改)
1 可设置接收短信的电话号码,及短信内容
2 当前应用中打开短信发送应用,无需退出当前应用
3 可以群发
1、添加框架、导入头文件及设置代理
1-1、添加framework:MessageUI.Framework
1-2、引入头文件:#import <MessageUI/MessageUI.h>
1-3、设置协议:MFMessageComposeViewControllerDelegate
2、代码示例
BOOL canSendSMS = [MFMessageComposeViewController canSendText];
if (canSendSMS)
{
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
picker.navigationBar.tintColor = [UIColor blackColor];
// 短信接收号码
picker.recipients = [NSArray arrayWithObjects:@"13800138001", @"13800138000", nil];
// 短信内容
picker.body = @"test";
[self presentViewController:picker animated:YES completion:nil];
}
// MFMessageComposeViewControllerDelegate
- (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];
}