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

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

  一、调用系统功能

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

    1.打电话

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

    2.发短信

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

    3、发email

      也是换一下协议即可

    

    4.打开网址

  二、在本应用中打开

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

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

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

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

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

 1 //发送短信的方法
 2 -(void)sendMessage
 3 {
 4     //用于判断是否有发送短信的功能(模拟器上就没有短信功能)
 5     Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
 6
 7     //判断是否有短信功能
 8     if (messageClass != nil) {
 9           //有发送功能要做的事情
10     }
11     else
12     {
13
14          UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"iOS版本过低(iOS4.0以后)" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
15
16         [alterView show];
17     }
18
19
20 }

  

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

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

    (3)、经过各种验证后确定设备可以使用MFMessageComposeViewController,我们就开始用了

 1          //实例化MFMessageComposeViewController,并设置委托
 2             MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
 3             messageController.delegate = self;
 4
 5
 6             //拼接并设置短信内容
 7             NSString *messageContent = [NSString stringWithFormat:@"亲爱的,这个是专属属你我应用的邀请码:%@",self.authCodeLabel.text];
 8             messageController.body = messageContent;
 9
10             //设置发送给谁
11             messageController.recipients = @[self.phoneNumberTextField.text];
12
13             //推到发送试图控制器
14             [self presentViewController:messageController animated:YES completion:^{
15
16             }];

    (4),差点给忘了,实现相应的委托回调协议是少不了的~要实现MFMessageComposeViewControllerDelegate,UINavigationControllerDelegate这两个协议。发送后的回调如下:

 1 //发送短信后回调的方法
 2 -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
 3 {
 4     NSString *tipContent;
 5     switch (result) {
 6         case MessageComposeResultCancelled:
 7             tipContent = @"发送短信已";
 8             break;
 9
10         case MessageComposeResultFailed:
11             tipContent = @"发送短信失败";
12             break;
13
14         case MessageComposeResultSent:
15             tipContent = @"发送成功";
16             break;
17
18         default:
19             break;
20     }
21
22     UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"提示" message:tipContent delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
23     [alterView show];
24 }

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

时间: 2024-08-02 02:40:46

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

iOS应用调用系统打电话、发短信和发邮件功能

摘要: 在应用程序内,调用系统的功能来实现打电话.发短信和发邮件,通过电话号码或者邮箱,直接跳转到系统的功能界面. PS:调试好像只能真机调试,模拟器没有反应,真机就可以跳转,不知道是不是必须真机,但方法肯定是可行的. 1.打电话 应用内调用系统打电话有两种方式: 1)WebView方式 使用WebView来跳转,把电话号码通过URL传递给WebView,这种方式会弹出是否要拨打的提示,可以选择拨打或者不拨打,打完也会自动回到应用界面,推荐. UIWebView *callWebview =[[

iOS 之(调用系统打电话功能)

如下图所示,点击订单里的打电话 button 后,调用系统的打电话功能. 这个调用系统打电话功能有点简单,不需要遵守协议和代理什么的,直接在点击方法里写上几句代码就可以了. 下面来看看代码吧: 接下来就是实现点 button 的点击方法了,有两种方法可以实现,有好有坏,看需求吧

IOS开发之自定义系统弹出键盘上方的view

IOS开发之自定义系统弹出键盘上方的view 分类: IOS 2014-11-18 09:26 1304人阅读 评论(0) 收藏 举报 目录(?)[+] 这篇文章解决的一个开发中的实际问题就是:当弹出键盘时,自定义键盘上方的view.目前就我的经验来看,有两种解决方法.一个就是利用 UITextField或者UITextView的inputAccessoryView属性,另一种,就是监听键盘弹出的notification来自 己解决相关视图的位置问题. 第一种解决方法相对比较简单,第二种的方法中

iOS程序内发短信

1.程序外发短信 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@sms://10086]]; 2.程序内发短信,发完短信自动返回应用 (1)首先导入框架MessageUI.framework (2) 引入头文件 #import <MessageUI/MessageUI.h> (3) 实现代理方法 <MFMessageComposeViewControllerDelegate, UINavigationCon

iOS开发——高级技术&amp;系统应用于系统服务

系统应用于系统服务 系统应用 在开发某些应用时可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,此时你可以直接使用UIApplication的OpenURL:方法指定特定的协议来打开不同的系统应用.常用的协议如下: 打电话:tel:或者tel://.telprompt:或telprompt://(拨打电话前有提示) 发短信:sms:或者sms:// 发送邮件:mailto:或者mailto:// 启动浏览器:http:或者http:// 1 下面以一个简单的demo演示如何调用上面几

android 开发之 - 调用系统闪光灯

Android开发调用系统闪光灯. 添加权限: <!-- 调用闪光灯权限 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardwar

Swift开发之调用系统相册

对于iOS 中调用系统相册的功能,我想大家都比较熟悉了,但是Swift语言调用可能很多伙伴们不是很清楚,毕竟Swift是一门新语言,所以语法和实现方法可能不是很清楚,所以今天做了一个demo,大家可以做一下参考. // //  ViewController.swift //  iOS // //  Created by 悦兑科技 on 15/1/12. //  Copyright (c) 2015年 BSY. All rights reserved. // import UIKit class

IOS程序内发短信 MFMessageComposeViewController

文章转载地址:http://www.headsky.org/?p=63 iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅Message UIFramework Reference 一些笔记: MFMessageComposeViewController 提供了操作界面 使用前必须检查canSendText方法,

c#短信接口代码实现(发短信)

我这里以56短信接口为例! 首先需要到56短信网上去注册个账号,代码中需要用到4个参数:企业ID.用户名.密码.所用平台 在里面充钱配合下面的代码就可以发送短信啦! public void Send(string orderIDs, string mobile, string productName)    { //下文中的tel:就是要发送的手机号码 //msg:要发送的内容        //发送短信        string cid = "1345";//企业号ID