iOS基本的发短信和打电话调用
电话、短信是手机的基础功能,iOS中提供了接口,让我们调用。这篇文章简单的介绍一下iOS的打电话、发短信在程序中怎么调用。
1、打电话
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10010"]];//打电话
使用openURL这个API打电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?有两种方法与大家分享。
第一种是用UIWebView加载电话,这种是合法的,可以上App Store的。
代码如下:
- UIWebView*callWebview =[[UIWebView alloc] init];
- NSURL *telURL =[NSURL URLWithString:@"tel:10010"];
- [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
- //记得添加到view上
- [self.view addSubview:callWebview];
第二种是私有方法,不能上App Store的(自己没试过)。
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10010"]];
上面的代码只是把第一个方法中的tel为telprompt.
2、发短信
iOS中可以使用两种方式发送短信,最简单是使用openURL:
- [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10010"]];//发短信
上面方式无法指定短信内容,iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅Message UIFramework Reference
MFMessageComposeViewController提供了操作界面使用前必须检查canSendText方法,若返回NO则不应将这个controller展现出来,而应该提示用户不支持发送短信功能.
messageComposeDelegate :代理,处理发送结果
recipients :收信人<列表,支持群发>
body :短信内容
Frameworks中要引入MessageUI.framework
#import <MessageUI/MessageUI.h>
添加协议:<MFMessageComposeViewControllerDelegate>
- #import <MessageUI/MessageUI.h>
- @interface DemoViewController : UIViewController <MFMessageComposeViewControllerDelegate>
- @end
调用MFMessageComposeViewController,同时实现协议MFMessageComposeViewControllerDelegate。
- - (void)showMessageView
- {
- if( [MFMessageComposeViewController canSendText] ){
- MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc]init]; //autorelease];
- controller.recipients = [NSArray arrayWithObject:@"10010"];
- controller.body = @"测试发短信";
- controller.messageComposeDelegate = self;
- [self presentModalViewController:controller animated:YES];
- [[[[controller viewControllers] lastObject] navigationItem] setTitle:@"测试短信"];//修改短信界面标题
- }else{
- [self alertWithTitle:@"提示信息" msg:@"设备没有短信功能"];
- }
- }
- //MFMessageComposeViewControllerDelegate
- - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
- [controller dismissModalViewControllerAnimated:NO];//关键的一句 不能为YES
- switch ( result ) {
- case MessageComposeResultCancelled:
- [self alertWithTitle:@"提示信息" msg:@"发送取消"];
- break;
- case MessageComposeResultFailed:// send failed
- [self alertWithTitle:@"提示信息" msg:@"发送成功"];
- break;
- case MessageComposeResultSent:
- [self alertWithTitle:@"提示信息" msg:@"发送失败"];
- break;
- default:
- break;
- }
- }
- - (void) alertWithTitle:(NSString *)title msg:(NSString *)msg {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
- message:msg
- delegate:self
- cancelButtonTitle:nil
- otherButtonTitles:@"确定", nil];
- [alert show];
- }
参考:
http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html
iOS基本的发短信和打电话调用的更多相关文章
- ios 调用系统发短信以及打电话功能
先介绍一种最简单的方法: 调用打电话功能 [[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"tel://100 ...
- iOS中如何切换到发短信、打电话、发邮件
我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...
- linux下利用GPRS模块发短信、打电话
一.开发环境 内核版本:linux-3.0 开发板:FL2440(nandflash:K9F1G08 128M) GPRS模块:SIM900 二.与发短信和拨号相关的 AT 指 ...
- Android实现发短信与打电话的功能
//发短信 class SendMsgClickListener implements OnClickListener { public void onClick(View v) { //调用Andr ...
- IOS程序内发短信 MFMessageComposeViewController
文章转载地址:http://www.headsky.org/?p=63 iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewCon ...
- android发短信,打电话
//1.进入系统短信列表界面 Intent intent = newIntent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_DEF ...
- 转: IOS程序内发短信 MFMessageComposeViewController
文章转载地址:http://www.headsky.org/?p=63 iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewCon ...
- iOS开发之调用系统打电话发短信接口以及程序内发短信
在本篇博客开头呢,先说一下写本篇的博客的原因吧.目前在做一个小项目,要用到在本应用程序内发验证码给其他用户,怎么在应用内发送短信的具体细节想不大起来了,于是就百度了一下,发现也有关于这方面的博客,点进 ...
- IOS,发短信,发邮件,打电话
今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...
随机推荐
- hdu 1301 Jungle Roads
http://acm.hdu.edu.cn/showproblem.php?pid=1301 #include <cstdio> #include <cstring> #inc ...
- Powershell 设置数值格式 1
设置数值格式 1 6 6月, 2013 在 Powershell tagged 字符串 / 数字 / 文本 / 日期 / 格式化 by Mooser Lee 格式化操作符 -f 可以将数值插入到字符 ...
- perl 登录某网站
<pre name="code" class="html">use Net::SMTP; use LWP::UserAgent; use HTTP: ...
- js深入研究之自定义混合Mixin函数
<script type="text/javascript"> /* 增加函数 */ function augment(receivingClass, givingCl ...
- Jtree(节点的渲染+资源管理器)(2)
上一次我们建立一个比较简单的资源管理器,这次我们说一下上面的资源管理器的问题,并且得尽量的贴近windows的资源管理器. 这样一个简单的资源管理树就完成了,下面我们说说它的问题: ① 图片和外观和W ...
- 算法导论(第三版)Exercises2.1(插入排序、线性查找、N位大数相加)
关于练习程序的说明参见置顶的那篇. 2.1-1: 31 41 59 26 41 58 31 41 59 26 41 58 31 41 59 26 41 58 26 31 41 59 41 58 26 ...
- [iOS] Create TableView & customize UITableViewCell
1. First artical, notice the last thing - Connecting the DataSource and Delegate: http://www.appcoda ...
- 7 个改变世界的 Java 项目
英文链接:http://radar.oreilly.com/2011/07/7-java-projects.html 文章转载自:开源中国社区 http://www.oschina.net/news/ ...
- POJ2151Check the difficulty of problems 概率DP
概率DP,还是有点恶心的哈,这道题目真是绕,问你T个队伍.m个题目.每一个队伍做出哪道题的概率都给了.冠军队伍至少也解除n道题目,全部队伍都要出题,问你概率为多少? 一開始感觉是个二维的,然后推啊推啊 ...
- Android ActionBar详解(一):ActionBar概述及其创建
在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使 ...