iOS MessageUI 框架使用笔记

这篇博客详细记录了如何在iOS应用中利用MessageUI框架的MFMessageComposeViewController实现短信发送功能,包括检查设备是否支持发送短信,展示消息控制器以及处理发送结果的代理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司项目需求需要做群发短信的功能,于是开始了解一下短信这一块,并作一下笔记。iOS开发中使用发短信功能一般有两种方法,一:通过[UIApplication sharedApplication]openURL:@"",直接调用系统的短信功能,这种方式无法在应用内指定短信内容;二:利用MessageUI进行操作,可以做一些自定义的设置。如果彼此的手机都是iOS设备,并且开通了iMessage功能,彼此之间的短信是走网络通道,而不走运营商的通道!

第二种方式用到MessageUI.framework框架,包括MFMailComposeViewController和MFMessageComposeViewController两个类,前者主要用于邮件,后者用于短信。
操作步骤:
  1. 导入框架:MessageUI.framework
  2.  #import <MessageUI/MessageUI.h>
  3. 添加协议:<MFMailComposeViewControllerDelegate>

pragma mark - Click Action

  • (void) showMessageViewAction
    {

    //判断设备能否发短信
    if ([MFMessageComposeViewController canSendText]) {
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];

    //设置代理
    picker.messageComposeDelegate = self;
    
    //默认信息内容
    picker.body = @"Hello World";
    
    //默认发件人
    picker.recipients = [NSArray arrayWithObject:@"12345678910"];
    
    [self presentViewController:picker animated:YES completion:nil];
    

    }else{

    UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示信息" message:@"该设备不支持短信" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
    [alterView show];
    

    }

}

pragma mark - MFMessageComposeViewController Delegate

  • (void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {

    switch (result) {
    case MessageComposeResultCancelled:
    NSLog(@”取消发送”);
    break;
    case MessageComposeResultSent:
    NSLog(@”发送成功”);
    break;
    case MessageComposeResultFailed:
    NSLog(@”发送失败”);
    break;
    default:
    break;
    }
    [self dismissViewControllerAnimated:YES completion:nil];
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值