两种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调用系统发短信的两种方法,希望对大家有所帮助。

相关文章

  • swift 常用高阶函数分享

    swift 常用高阶函数分享

    Swift是一门面向协议的语言,在使用Swift时我们已经充分享受到了面向协议编程带给我们的便利,但是Swift相比Obj-C还有一个更重要的优点,那就是对函数式编程提供了很好的支持,其中Swift提供了map,filter,reduce这三个高阶函数Higher Order function作为对容器的支持
    2017-12-12
  • Terminal该如何自定义提示详解

    Terminal该如何自定义提示详解

    这篇文章主要给大家介绍了关于Terminal如何自定义提示的相关资料,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-06-06
  • IOS自适配利器Masonry使用指南

    IOS自适配利器Masonry使用指南

    如果说自动布局解救了多屏幕适配,那众多三方库的出现就解救了系统自动布局的写法。Masonry就是其中一个。用法上也比较简单灵活,很大程度上替代了传统的NSLayoutConstraint布局方式。下面我们就来具体探讨下吧
    2016-01-01
  • 关于iOS 11的一些新特性适配实践总结

    关于iOS 11的一些新特性适配实践总结

    iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。下面这篇文章主要给大家总结介绍了关于iOS 11的一些新特性适配实践,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-11-11
  • iOS自定义UICollectionViewFlowLayout实现图片浏览效果

    iOS自定义UICollectionViewFlowLayout实现图片浏览效果

    这篇文章主要介绍了iOS自定义UICollectionViewFlowLayout实现图片浏览效果的相关资料,需要的朋友可以参考下
    2016-03-03
  • 详解ios11中estimatedRowHeight属性

    详解ios11中estimatedRowHeight属性

    本篇文章主要给大家介绍了ios11中estimatedRowHeight属性的用法和知识,有兴趣的朋友学习下。
    2018-01-01
  • iOS开发中一些手写控件及其相关属性的使用

    iOS开发中一些手写控件及其相关属性的使用

    这篇文章主要介绍了iOS开发中一些手写控件及其相关属性的使用,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-12-12
  • iOS应用中UITableView左滑自定义选项及批量删除的实现

    iOS应用中UITableView左滑自定义选项及批量删除的实现

    这篇文章主要介绍了iOS应用中UITableView左滑自定义选项及批量删除的实现,UITableView列表中即通讯录左滑呼出选项的那种效果在删除时能够实现多行删除将更加方便,需要的朋友可以参考下
    2016-03-03
  • iOS-GCD使用详解及实例解析

    iOS-GCD使用详解及实例解析

    这篇文章主要介绍了iOS-GCD使用详解及实例解析的相关资料,需要的朋友可以参考下
    2016-11-11
  • WKWebview非全屏自动播放h5视频的实现方法(Swift、OC)

    WKWebview非全屏自动播放h5视频的实现方法(Swift、OC)

    这篇文章主要给大家介绍了关于WKWebview非全屏自动播放h5视频的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论