博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之调用系统打电话发短信接口以及程序内发短信
阅读量:5913 次
发布时间:2019-06-19

本文共 3212 字,大约阅读时间需要 10 分钟。

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

  一、调用系统功能

    在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];}

 

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

转载地址:http://cpqpx.baihongyu.com/

你可能感兴趣的文章
Keepalived双机热备
查看>>
两个关于数列的Python脚本(斐波那契数列和猴子吃香蕉类问题)
查看>>
olabuy-时光从来素默,内心应保持一份素淡与简静
查看>>
UNIGUI-DBGRID的统计行的使用
查看>>
游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案
查看>>
Spring Batch Bean 校验 API 支持
查看>>
自动化运维工具ansible详细介绍以模块的使用
查看>>
你的成绩来着于你的努力与决心—PMP
查看>>
kux文件怎么打开 苹果手机如何观看kux视频
查看>>
Python中的urllib.request模块
查看>>
第九课 《说人话》
查看>>
js对象数组排序
查看>>
如何实现在展示商品时,放大商品细节
查看>>
uboot boot流程分析
查看>>
如何学习PHP整个体系的?
查看>>
用户与组
查看>>
Java学习如何走出第一步
查看>>
我的友情链接
查看>>
outlook 2010 插入图片置于底部使用2003打开时,位置变化
查看>>
NTP时间服务器配置
查看>>