iOS平台下发送短信功能的实现方法

1 下载量 78 浏览量 更新于2024-09-02 收藏 150KB PDF 举报
iOS发送短信功能的实现代码 iOS发送短信功能的实现代码是iOS开发中一个非常重要的功能,对于需要渠道扩展的APP来说,必不可少。下面我们来详细介绍如何实现这个功能。 首先,我们来介绍一个最为简单的方法,只需要一行代码就可以搞定,代码如下: [[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"sms://800888"]]; 这段代码虽然简单,缺陷却也明显,这段代码属于程序外部调用,也就是跳出app程序本身,利用手机短信功能发送短信,在发送短信页面点击取消按钮时,回到的是手机短信功能页面,而不是app程序。而且,此方法也不能传入默认的短信文本,需要自己手动输入,很可能无法满足需求。 因此,我们需要使用苹果官方提供的框架MessageUI来实现发送短信功能。MessageUI框架可以解决上述一切问题,而且轻松方便容易实现。 使用MessageUI框架需要遵循以下步骤: 1. 导入框架:MessageUI.framework 2. 导入头文件:#import<MessageUI/MessageUI.h> 3. 添加协议:<MFMessageComposeViewControllerDelegate> 在添加完协议之后,我们首先想到的就是实现协议方法,可是还不能急,我们还得检测一下设备是否可以发送短信。如下: -(void)showSMSPicker:(id)sender { / 您必须检查当前设备是否可以在尝试创建一个MFMessageComposeViewController的实例之前发送短信 如果设备无法发送短信, [[MFMessageComposeViewControlleralloc]init]将返回nil。 您的应用程式用一个空视图控制器调用 -presentViewController时会导致崩溃。 / if([MFMessageComposeViewController canSendText]) { // 创建MFMessageComposeViewController实例 MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.messageComposeDelegate = self; // 设置默认短信文本 picker.body = @"短信内容"; // 设置收件人号码 picker.recipients = @[@"10086"]; // 显示发送短信界面 [self presentViewController:picker animated:YES completion:nil]; } else { // 设备无法发送短信时的处理 } } 在上面的代码中,我们首先检测设备是否可以发送短信,如果可以发送短信,则创建一个MFMessageComposeViewController实例,并设置默认短信文本和收件人号码,然后显示发送短信界面。 在MFMessageComposeViewControllerDelegate协议中,我们需要实现以下方法: -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled: // 用户取消发送短信 break; case MessageComposeResultFailed: // 发送短信失败 break; case MessageComposeResultSent: // 发送短信成功 break; default: break; } [self dismissViewControllerAnimated:YES completion:nil]; } 通过使用MessageUI框架,我们可以轻松实现发送短信功能,并且可以解决之前提到的问题。同时,我们也可以使用MFMessageComposeViewControllerDelegate协议来处理发送短信后的结果。