今天要實現一個功能,向通訊錄中的聯系人發送短信,在短信中附帶 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];
}
}
第六步:在你需要調用方法的地方調用即可