iOS 調用系統短信界面發送短信

今天要實現一個功能,向通訊錄中的聯系人發送短信,在短信中附帶 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];

}

}

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容