iOS中有很多的常用小功能:比如打电话,发邮件,发短信等:
一:打电话:
1:最简单直接的方法:直接跳转到拨号界面。
NSURL * url = [NSURLURLWithString:@"110"];
[[UIApplicationsharedApplication]openURL:url options:nilcompletionHandler:nil];
缺点:打完电话之后不会返回原来应用,直接停留在通话记录界面。
2:拨号之前弹框询问用户是否拨打电话,拨完电话之后会返回原应用。
NSURL *url2 = [NSURLURLWithString:@"telprompt://110"];
[[UIApplicationsharedApplication]openURL:url2 options:nilcompletionHandler:nil];
缺点:因为是私有api所以不会被审核通过
3:创建一个UIWebView来加载一个URL,拨完之后会返回原应用。
if (_webView ==nil) {
_webView = [[UIWebViewalloc]initWithFrame:CGRectZero];
}
[_webViewloadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:@"tel://110"]]];
拨号之前会询问用户,拨完之后会返回原程序,注意:UIWebView不是设置大小。不然会挡住其他界面,只是用来打电话的,不需要显示。
二:发短信。
1:直接跳转到发短信界面,但是不能指定短信内容,而去不能返回原应用。
NSURL * url3 = [NSURLURLWithString:@"sms://10010"];
[[UIApplicationsharedApplication] openURL:url3 options:nilcompletionHandler:nil];
2:指定短信内容,需要使用MessageUI框架。
包含头文件:
#import<MessageUI/MessageUI.h>
MFMessageComposeViewController *vc = [[MFMessageComposeViewControlleralloc] init];
设置短信内容
vc.body= @"下班了没?";
设置收件人列表
vc.recipients =@[@"10010",@"02010010"];
设置代理
vc.messageComposeDelegate =self;
显示控制器
[selfpresentViewController:vc animated:YES completion:nil];
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
关闭短信界面
[controller dismissViewControllerAnimated:YES completion:nil];
if (result ==MessageComposeResultCancelled) {
NSLog(@"取消发送");
} else if (result == MessageComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
三:发邮件
1:用自带的的客户端发送邮件。不会返回原来应用。
NSURL *url = [[NSURL alloc]initWithString:@"mailto:1100@qq.com"];
[[UIApplication sharedApplication]openURL:url options:nil completionHandler:nil];
2:跟发送短信的第二种方法差不多,使用控制器叫:MFMailComposeViewController
包含头文件
#import <MessageUI/MessageUI.h>
遵循代理
@interface ViewController ()<MFMailComposeViewControllerDelegate>
//2:初始化控制器
MFMailComposeViewController *VC = [[MFMailComposeViewController alloc]init];
VC.delegate = self;
#pragma MARK __代理事件__
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
//关闭邮件界面
[controller dismissViewControllerAnimated:YES completion:nil];
if (result == MFMailComposeResultCancelled) {
NSLog(@"取消发送");
} else if (result == MFMailComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
四:打开常用类型文件 比如:HTML ,txt,PDF,PPT等,都可以使用UIWebView打开,只需要告诉打开的URL就行。
打开远程资源,比如使用http协议的,也可以使用系统自带的浏览器打开
NSURL *url = [NSURL URLWithString:@”http://www.baidu.com"];
[[UIApplication sharedApplication] openURL:url];
五:应用之间的跳转:有时候应用需要打开其他应用,比如从应用A跳转到应用B。
首先应用B 需要有自己的URL地址 需要在(Info.plist文件中配置);(配置请谷歌)
比如应用B的URL是 mj://iOS.itcast.cn
NSURL *url3 = [NSURL URLWithString:@"mj://iOS.itcast.cn"];
[[UIApplication sharedApplication]openURL:url3 options:nil completionHandler:nil];
五:用户评分:为了提高应用的用户体验,经常需要邀请用户对自己的APP进行评分。需要套转到AppStore展示自己的应用,然后用户撰写评论:
方法
NSString *appid = @"7286423876578326”;
NSString *str = [NSString stringWithFormat:
@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid];