电话、短信是手机的基础功能,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新加入了MFMessageComposeViewCont<wbr style="font-family: simsun; line-height: 21px;"><span style="background-color: rgb(255, 255, 255); font-family: simsun; line-height: 21px;">roller和MFMessageComposeViewCont</span><wbr style="font-family: simsun; line-height: 21px;"><span style="background-color: rgb(255, 255, 255); font-family: simsun; line-height: 21px;">rollerDelegate,</span><span style="background-color: rgb(255, 255, 255); font-family: simsun; line-height: 21px;">提供了发</span><span style="background-color: rgb(255, 255, 255); font-family: simsun; line-height: 21px;">送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅<a href="http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html" target="_blank">Message UIFramework Reference</a></span></wbr></wbr>
MFMessageComposeViewController提供了操作界面使用前必须检查canSendText方法,若返回NO则不应将这个controller展现出来,而应该提示用户不支持发送短信功能.
messageComposeDelegate :代理,处理发送结果
recipients :收信人<列表,支持群发>
body :短信内容
Frameworks中要引入MessageUI.framework
#import<wbr></wbr><MessageUI/MessageUI.h>
添加协议:<MFMessageComposeViewCont<wbr>rollerDelegate></wbr>
#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];
}
发邮件可参考
* iOS入门群:83702688
* android开发进阶群:241395671
*/
参考:
http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html
分享到:
相关推荐
总结来说,iOS9提升了iPhone的多任务处理能力,使得打电话、发短信、写邮件和浏览网页变得更加流畅和高效。用户可以根据自己的需求灵活使用这些功能,提高日常工作效率。而这一切都集成在一个简洁易用的界面中,体现...
以上就是关于在iOS应用中封装打电话、发短信和发邮件功能的基本方法。通过这样的封装,你可以在项目中创建一个统一的工具类,提高代码复用性和维护性。不过,始终要确保遵循Apple的App Store审核指南,特别是关于...
iOS 原生地图开发进阶——使用导航和附近兴趣点检索 iOS 原生地图开发进阶——使用导航和附近兴趣点检索是 iOS 地图开发中两个非常重要的功能。使用 iOS 的 mapKit 框架,可以实现线路导航和附近兴趣点检索这两个...
IOS源码实现了: 1)打电话:用户在初始化该类后,调用打电话的方法,传入相应参数,即可完成调用系统打电话的功能。 2)发短信:用户在初始化该类后,调用发短信的方法,传入相应参数,即可完成调用系统发短信功能...
iOS游戏应用源代码——krzysztofzablocki-SFContainerViewController.zip
iOS游戏应用源代码——FlorianMielke-FMMoveTableView.zip
iOS游戏应用源代码——steveturner-IOS-WhackJob-bak-03c0bdc.zip
【标题】"iOS游戏应用源代码——mefistody-FlashToCocos2D.zip" 涉及的关键知识点主要集中在iOS游戏开发和Cocos2D框架的应用上。这个压缩包可能包含了一个使用Cocos2D-iOS引擎将Flash内容移植到iOS平台上的游戏项目...
iOS游戏应用源代码——atreat-TowerDefense-43e3491.zip
总的来说,分析和学习"iOS游戏应用源代码——kastner-fifteen-44a73e4.zip"不仅可以提升开发者对iOS游戏开发的全面理解,还可以深化对Swift编程语言、UI设计原则以及游戏算法设计的认识,为今后的项目提供宝贵的参考...
iOS游戏应用源代码——joshbuhler-Soap-193ab63.zip
iOS游戏应用源代码——manuelhunziker-active-Game-Controller.zip
iOS游戏应用源代码——boydlee-AntiClaus-e7a0411.zip
iOS游戏应用源代码——jdedona-CarGame-495475e.zip
iOS游戏应用源代码——drewish-Pipes-f5826b2.zip
iOS游戏应用源代码——jarodl-Pontra-a5df438.zip
通过学习和分析《iOS游戏应用源代码——sqlboy-tiled-games-b6ef16c.zip》,开发者不仅可以深入理解iOS游戏开发的各个环节,还能提升在2D游戏设计、数据库集成以及资源管理等方面的技术能力。同时,这也是一个实践和...
"iOS游戏应用源代码——AjComboBox.zip" 提供了一个名为 AjComboBox 的组件,这可能是一个自定义的下拉选择框控件,专为iOS游戏界面设计。在iOS应用,特别是游戏开发中,定制UI元素是提升用户体验和实现独特设计的...
【标题】"iOS游戏应用源代码——Xenofex-MultiColumnTableViewForiOS.zip" 提供的是一个专门针对iOS平台的游戏应用源代码,其核心功能是实现多列表格视图。在iOS开发中,表格视图(UITableView)是常用的一种界面...
iOS游戏应用源代码——cdave1-marching-fd223df.zip