iOS开发之调用系统打电话发短信接口以及程序内发短信-阿里云开发者社区

开发者社区> 青玉伏案> 正文

iOS开发之调用系统打电话发短信接口以及程序内发短信

简介:
+关注继续查看

  在本篇博客开头呢,先说一下写本篇的博客的原因吧。目前在做一个小项目,要用到在本应用程序内发验证码给其他用户,怎么在应用内发送短信的具体细节想不大起来了,于是就百度了一下,发现也有关于这方面的博客,点进去看了看,个人感到有点小失望,写的太不详细,只是简单的代码罗列,而且代码也没注释,大概是因为太简单了吧。今天在做完项目的发短信功能后感觉有必要把这部分内容整理一下,做个纪念也是好的不是吗。废话少说,切入今天的正题。下面的发短信,打电话当然需要真机测试了。

  一、调用系统功能

    在iOS中打开系统本身的打电话和发短信功能还是比较简单的,之前在SSO中也提了一嘴,iOS中可以由一个应用打开另一个应用,只需要一行代码,打电话,发短信,发email,开网页也是一样的 ,只是用的协议不一样。

    1.打电话

      这个还是比较简单的,下面是打电话的代码:%@的内容是手机号self.myApplication是Application的单例。

 

    2.发短信

      发送短信只是和打电话用的协议不一样改一下协议就可以打电话了

 

    3、发email

      也是换一下协议即可

    

    4.打开网址

 

  二、在本应用中打开

    上面的方法都是打开相应的应用程序,然后做相应的事情,那么我们如何在本应用中就可以给我们的用户发送短信呢?下面就让我们来实现这个功能

    1.引入我们要用的framework(其实在应用程序内发送短信和ImagePickerViewController的用法极为的相似,没有什么困难的地方),我们需要引入MessageUI.framework,入下图

 

    2.在pch文件导入相应头文件

    3.下面是实现发送短信的核心代码

      (1)判断设备是否有发送短信的功能代码如下:

//发送短信的方法
-(void)sendMessage
{
    //用于判断是否有发送短信的功能(模拟器上就没有短信功能)
    Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
    
    //判断是否有短信功能
    if (messageClass != nil) {
          //有发送功能要做的事情
    }
    else
    {
        
         UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"iOS版本过低(iOS4.0以后)" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
        
        [alterView show];
    }
    
    
}

  

    (2).如果有发送短信功能的话,就得判断iOS版本释放支持"MFMessageComposeViewController". iOS4.0之后支持

//有短信功能
        if ([messageClass canSendText]) {
              //发送短信
        }
        else
        {
            UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"该设备没有发送短信的功能~" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
            
            [alterView show];
        }


    (3)、经过各种验证后确定设备可以使用MFMessageComposeViewController,我们就开始用了
//实例化MFMessageComposeViewController,并设置委托
            MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
            messageController.delegate = self;
            
            
            //拼接并设置短信内容
            NSString *messageContent = [NSString stringWithFormat:@"亲爱的,这个是专属属你我应用的邀请码:%@",self.authCodeLabel.text];
            messageController.body = messageContent;
            
            //设置发送给谁
            messageController.recipients = @[self.phoneNumberTextField.text];
            
            //推到发送试图控制器
            [self presentViewController:messageController animated:YES completion:^{
                
            }];


    (4),差点给忘了,实现相应的委托回调协议是少不了的~要实现MFMessageComposeViewControllerDelegate,UINavigationControllerDelegate这两个协议。发送后的回调如下:
//发送短信后回调的方法
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    NSString *tipContent;
    switch (result) {
        case MessageComposeResultCancelled:
            tipContent = @"发送短信已";
            break;
        
        case MessageComposeResultFailed:
            tipContent = @"发送短信失败";
            break;
        
        case MessageComposeResultSent:
            tipContent = @"发送成功";
            break;
            
        default:
            break;
    }
    
    UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:tipContent delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
    [alterView show];
}

 

  到此就可以发送短信了,本篇博客先就到这儿吧~

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云AIoT低代码开发工具IoT Studio用户数已经突破10万!
IoT Studio面向各个行业提供场景化解决方案模板,企业可以直接利用现有的解决方案模版来开发自己的业务
1239 0
阿里大鱼短信发送接口开发
一、 API接口介绍 alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量。使用前需要在阿里大于管理中心添加短信签名与短信模板。
10848 0
秒懂云通信:如何用阿里云平台发短信?
手把手教你如何用阿里云平台发短信,超详细控制台步骤解析,快速上手!更有1650元短信体验代金券和免费试用,点击速抢!
2795 0
谈谈低代码在前后端开发的应用领域
从一个从事过前后端大数据AI开发的角度谈下低代码的应用
231 0
dedecms利用addfields body在首页调用文章内容
  开源程序比较好的一点是可以进行二次开发,比如ytkah想要开发一个专家出诊表的功能模块,如下图所示,每天的专家都不一样,可以用到内容模型,但是相对比较复杂;我们可以把每天的坐诊情况写成一篇文章再通过调用文章内容的形式来实现(科室、上午下午、专家名称用table表格罗列出来,效果见mzeyes.com)。
723 0
阿里云短信使用入门/开发接口文档一篇文章全搞定
阿里云短信提供秒级触达到达率99%,国际/港澳台短信覆盖200多个国家和地区,阿里云短信接入简单
2995 0
微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
原文:微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台  微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo   前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实际的开发过程中可能会遇见很多问题。
1414 0
+关注
青玉伏案
在技术的世界中,一直在路上~
135
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载