美文网首页
iOS 调用系统短信界面发送短信

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

作者: 一位小码农 | 来源:发表于2016-09-07 10:36 被阅读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];

    }

    }

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

    相关文章

      网友评论

          本文标题:iOS 调用系统短信界面发送短信

          本文链接:https://www.haomeiwen.com/subject/karjettx.html