两种iOS调用系统发短信的方法

 更新时间:2016年07月26日 08:48:54   投稿:daisy  
iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信。2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。这对app来说非常重要。

一、程序外调用系统发短信

这个方法其实很简单,直接调用openURL即可:

NSURL *url = [NSURL URLWithString:@"sms://15888888888"];
[[UIApplication sharedApplication]openURL:url];

二、程序内调用系统发短信

这种方法有一个好处就是用户发短信之后还可以回到App.

首先要导入MessageUI.framework,并引入头文件:

#import <MessageUI/MessageUI.h>

然后要遵循代理MFMessageComposeViewControllerDelegate,并实现代理方法。

#pragma mark - 代理方法
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
  [self dismissViewControllerAnimated:YES completion:nil];
  switch (result) {
    case MessageComposeResultSent:
      //信息传送成功
       
      break;
    case MessageComposeResultFailed:
      //信息传送失败
       
      break;
    case MessageComposeResultCancelled:
      //信息被用户取消传送
       
      break;
    default:
      break;
  }
}

发送短信方法实现

#pragma mark - 发送短信方法
-(void)showMessageView:(NSArray *)phones title:(NSString *)title body:(NSString *)body
{
  if( [MFMessageComposeViewController canSendText] )
  {
    MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];
    controller.recipients = phones;
    controller.navigationBar.tintColor = [UIColor redColor];
    controller.body = body;
    controller.messageComposeDelegate = self;
    [self presentViewController:controller animated:YES completion:nil];
    [[[[controller viewControllers] lastObject] navigationItem] setTitle:title];//修改短信界面标题
  }
  else
  {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"
                            message:@"该设备不支持短信功能"
                            delegate:nil
                       cancelButtonTitle:@"确定"
                       otherButtonTitles:nil, nil];
    [alert show];
  }
}

最后,调用发送短信的方法

复制代码 代码如下:

[self showMessageView:[NSArray arrayWithObjects:@"15888888888",@"12399999999", nil] title:@"test" body:@"这是测试用短信,勿回复!"];

以上就是小编给大家介绍的iOS调用系统发短信的两种方法,希望对大家有所帮助。

相关文章

  • iOS实现封装一个获取通讯录的工具类详解

    iOS实现封装一个获取通讯录的工具类详解

    这篇文章主要给大家介绍了关于iOS如何实现封装一个获取通讯录的工具类的相关资料,这是自己平时封装的一个工具类,使用非常方便,文中给出了详细的示例代码,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • XCODE Debug模式资料整理

    XCODE Debug模式资料整理

    这篇文章主要介绍了XCODE Debug模式资料整理的相关资料,开发APP应用肯定会用到Debug来调试程序,这里就细致的讲解下debug资料,需要的朋友可以参考下
    2016-11-11
  • iOS Moya实现OAuth请求的方法

    iOS Moya实现OAuth请求的方法

    这篇文章主要介绍了iOS Moya实现OAuth请求的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • IOS实现签到特效(散花效果)的实例代码

    IOS实现签到特效(散花效果)的实例代码

    这篇文章主要介绍了IOS实现签到特效(散花效果)的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • IOS使用UICollectionView实现无限轮播效果

    IOS使用UICollectionView实现无限轮播效果

    这篇文章主要为大家详细介绍了IOS使用UICollectionView实现无限轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • iOS开发输入自动填充UITextField背景色

    iOS开发输入自动填充UITextField背景色

    如何在iOS中实现输入时自动填充背景色的效果,首先,我们设置UITextField的背景色为初始颜色,然后,通过设置UITextField的代理,并监听UITextField的输入事件,我们在用户开始输入时将其背景色改变为高亮颜色,在用户结束输入时恢复为初始颜色
    2023-10-10
  • IOS 中NSTimer定时器的使用

    IOS 中NSTimer定时器的使用

    这篇文章主要介绍了IOS 中NSTimer定时器的使用的相关资料,希望通过本文能帮助到大家,能让大家彻底理解使用该方法,需要的朋友可以参考下
    2017-10-10
  • iOS开发教程之扇形动画的实现

    iOS开发教程之扇形动画的实现

    实现扇形图大家应该都会的,但是扇形动画大家都会实现吗?下面这篇文章主要给大家介绍了关于iOS开发教程之扇形动画实现的相关资料,文中介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • ios设计模式--委托模式

    ios设计模式--委托模式

    这篇文章主要介绍了ios设计模式中的委托模式,希望对大家学习ios框架有所帮助,下面让我们一起来了解一下吧
    2023-03-03
  • IOS开发之适配iOS10及Xcode8的注意点

    IOS开发之适配iOS10及Xcode8的注意点

    这篇文章主要介绍了IOS开发之适配iOS10及Xcode8的注意点,本文给大家介绍了可能出现的问题及相应的解决方法,非常不错具有参考借鉴价值,感兴趣的朋友一起看看
    2016-10-10

最新评论