iOS调用系统的发短信功能可以分为两种:
1,程序外调用系统发短信。
2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。
这对app来说非常重要。
程序外调用系统发短信
这个方法其实很简单,直接调用openURL即可:
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://13888888888"]];
程序内调用系统发短信
1)导入MessageUI.framework,并引入头文件:
#import <MessageUI/MessageUI.h>
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:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil, nil];
[alert show];
}
}
参数phones:发短信的手机号码的数组,数组中是一个即单发,多个即群发。
4)调用发短信的方法
[self showMessageView:[NSArray arrayWithObjects:@"13888888888",@"13999999999", nil] title:@"test" body:@"你是土豪么,么么哒"];
简版:
#pragma mark - MFMessageComposeViewControllerDelegate
///发送后或者cancel退回本页面
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
[selfdismissViewControllerAnimated:YEScompletion:nil];
}
///编辑好内容跳转到系统发送短信页面
- (void)smsWihtMsg:(NSString*)msg phoneAry:(NSArray*)list{
if([MFMessageComposeViewController canSendText]) {
[AppConfig recordUserBehaviorCode:EVEN_ID_SEND_SMS codeDesc:@""nodeCode:nilassistantId:nil];
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.body = msg;
controller.recipients = list;
controller.messageComposeDelegate =self;
[selfpresentViewController:controller animated:YEScompletion:nil];
}
else{
[selfshowTips:@"您的手机无法送短信"];
}
}