iOS 调用系统短信界面发送短信

2016-09-07  本文已影响0人  一位小码农

今天要实现一个功能,向通讯录中的联系人发送短信,在短信中附带 app 的下载地址,来推广 app。需要在 app 中调用系统的短信界面。如何在 app 中获取手机通讯的联系人,这个功能在下一篇文章中会分享给大家。下面就说下怎么调用系统的短信。

第一步:需要在项目中添加需要使用的库。

第二步:在使用到短信的类的.m 文件中 添加头文件  #import <MessageUI/MessageUI.h>

第三步:遵守协议  MFMessageComposeViewControllerDelegate

第四步:实现代理方法

#pragma mark - MFMessageComposeViewControllerDelegate

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

{

[self dismissViewControllerAnimated:YES completion:nil];

switch (result) {

case MessageComposeResultSent:

//短信发送成功

NSLog(@"短信发送成功");

break;

case MessageComposeResultFailed:

//短信发送失败

NSLog(@"短信发送失败");

break;

case MessageComposeResultCancelled:

//用户取消发送

NSLog(@"用户取消发送");

break;

default:

break;

}

}

第五步:自己定义一个发短信的方法

// 发送短信   需要注意的是: phones 是一个数组,数组中只有一个元素的时候是发送给一个人,当数组中有多个元素的时候是群发的功能

-(void)showMessageView:(NSArray *)phones body:(NSString *)body

{

if( [MFMessageComposeViewController canSendText] )

{

MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];

controller.recipients = phones;

controller.navigationBar.tintColor = [UIColor whiteColor];

controller.body = body;

controller.messageComposeDelegate = self;

//之所以用 modal 的方式显示系统短信界面,是因为系统短信界面本身就是带有导航控制器的,如果你用导航控制器 push 系统短信界面会导致程序奔溃

[self presentViewController:controller animated:YES completion:nil];

}else{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"

message:@"该设备不支持短信功能"

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil, nil];

[alert show];

}

}

第六步:在你需要调用方法的地方调用即可

上一篇 下一篇

猜你喜欢

热点阅读