iOS 电话/短信/邮件/UIApplication

 1,打电话的三种方式:
1⃣️
 • 最简单最直接的⽅方式:直接跳到拨号界⾯面

NSURL *url = [NSURL URLWithString:@"tel://10010"];

[[UIApplication sharedApplication] openURL:url];
 • 缺点电话打完后,不会⾃自动回到原应⽤用,直接停留在通话记录界⾯面 

2⃣️

• 拨号之前会弹框询问⽤用户是否拨号,拨完后能⾃自动回到原应⽤用
NSURL *url = [NSURL URLWithString:@"telprompt://10010"];

[[UIApplication sharedApplication] openURL:url];
 • 缺点因为是私有API,所以可能不会被审核通过 

3⃣️
一般用这个
 • 创建⼀一个UIWebView来加载URL,拨完后能⾃自动回到原应⽤用
_webView = [[UIWebView alloc] initWithFrame:CGRectZero];

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURLURLWithString:@"tel://10010"]]];

需要注意的是:这个webView千万不要添加到界⾯面上来,不然会挡住其他界⾯面 
———————————————————————————

2发短信的两种方式:

1⃣️
• 直接跳到发短信界⾯面,但是不能指定短信内容,⽽而且不能⾃自动回到原应⽤用
 NSURL *url = [NSURL URLWithString:@"sms://10010"];
[[UIApplication sharedApplication] openURL:url]; 
 
2⃣️

• 如果想指定短信内容,那就得使⽤用MessageUI框架• 包含主头⽂文件
#import <MessageUI/MessageUI.h>

• 显⽰示发短信的控制器

  1  MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];
  2 
  3         // 设置短信内容
  4 
  5         vc.body = @"吃饭了没?";
  6 
  7         // 设置收件人列表
  8 
  9         vc.recipients = @[@"10010", @"02010010"];
 10 
 11         // 设置代理
 12 
 13         vc.messageComposeDelegate = self;
 14 
 15         
 16 
 17         // 显示控制器
 18 
 19         [self presentViewController:vc animated:YES completion:nil]; 
 20 
 21  实现代理方法:
 22 
 23 • 代理⽅方法,当短信界⾯面关闭的时候调⽤用,发完后会⾃自动回到原应⽤用
 24 
 25 - (void)messageComposeViewController:(MFMessageComposeViewController *)controllerdidFinishWithResult:(MessageComposeResult)result
 26 { // 关闭短信界⾯面
 27 
 28  *  点击取消按钮会自动调用
 29 
 30  */
 31 
 32  
 33 [controller dismissViewControllerAnimated:YES completion:nil];
 34 if (result == MessageComposeResultCancelled) {NSLog(@"取消发送");
 35 
 36 } else if (result == MessageComposeResultSent) {NSLog(@"已经发出");
 37 
 38 } else {NSLog(@"发送失败"); 
 39 }
 40 } 
 41 --------------------------------
 42 3,发邮件
 43  
 44 
 45 • 跟发短信的第2种⽅方法差不多,只不过控制器类名叫做:MFMailComposeViewController
 46 • 假设发送的邮件内容如右图所⽰示,代码实现看备注 
 47 
 48 // 不能发邮件
 49 
 50 //        if (![MFMailComposeViewController canSendMail]) return;
 51 
 52         
 53 
 54         MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];
 55 
 56         
 57 
 58         // 设置邮件主题
 59 
 60         [vc setSubject:@"会议"];
 61 
 62         // 设置邮件内容
 63 
 64         [vc setMessageBody:@"今天下午开会吧" isHTML:NO];
 65 
 66         // 设置收件人列表
 67 
 68         [vc setToRecipients:@[@"643055866@qq.com"]];
 69 
 70         // 设置抄送人列表
 71 
 72         [vc setCcRecipients:@[@"1234@qq.com"]];
 73 
 74         // 设置密送人列表
 75 
 76         [vc setBccRecipients:@[@"56789@qq.com"]];
 77 
 78         
 79 
 80         // 添加附件(一张图片)
 81 
 82         UIImage *image = [UIImage imageNamed:@"lufy.png"];
 83 
 84         NSData *data = UIImagePNGRepresentation(image);
 85 
 86         [vc addAttachmentData:data mimeType:@"image/png" fileName:@"lufy.png"];
 87 
 88         
 89 
 90         // 设置代理
 91 
 92         vc.mailComposeDelegate = self;
 93 
 94         // 显示控制器
 95 
 96         [self presentViewController:vc animated:YES completion:nil];
 97 
 98     };
 99 
100     
101 
102  
103  • 邮件发送后的代理⽅方法回调,发完后会⾃自动回到原应⽤用
104 
105 /**
106 
107  *  点击取消按钮会自动调用
108 
109  */
110 
111  
112 
113 - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
114 
115 {
116 
117     [controller dismissViewControllerAnimated:YES completion:nil];
118 
119 if (result == MFMailComposeResultCancelled) {NSLog(@"取消发送");
120 
121 } else if (result == MFMailComposeResultSent) {NSLog(@"已经发出");
122 
123 } else {NSLog(@"发送失败");
124 
125  
126 
127 }

 

 

--------------------- 

4,打开其他文件:

打开其他常见⽂文件

• 如果想打开⼀一些常见⽂文件,⽐比如html、txt、PDF、PPT等,都可以使⽤用UIWebView打开

• 只需要告诉UIWebView⽂文件的URL即可
• ⾄至于打开⼀一个远程的共享资源,⽐比如http协议的,也可以调⽤用系统⾃自带的

Safari浏览器:
NSURL *url = [NSURL URLWithString:@”http://www.baidu.com"];

[[UIApplication sharedApplication] openURL:url]; 
 ----------------------
5,应用间的跳转:
 图片

应⽤用评分

• 为了提⾼高应⽤用的⽤用户体验,经常需要邀请⽤用户对应⽤用进⾏行评分
• 应⽤用评分⽆无⾮非就是跳转到AppStore展⽰示⾃自⼰己的应⽤用,然后由⽤用户⾃自⼰己撰写评论

• 如何跳转到AppStore,并且展⽰示⾃自⼰己的应⽤用➢ ⽅方法1

1 NSString *appid = @"444934666";
2  NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@", appid];
3 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
4 ➢ ⽅方法2
5 NSString *str = [NSString stringWithFormat:
6 
7 @"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid]; 
8 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 
9  

 

posted @ 2015-07-23 21:32  张雄杰vip  阅读(182)  评论(0编辑  收藏  举报