码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 电话/短信/邮件/UIApplication

时间:2015-07-23 23:07:37      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

 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>

• 显?示发短信的控制器

 MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];

        // 设置短信内容

        vc.body = @"吃饭了没?";

        // 设置收件人列表

        vc.recipients = @[@"10010", @"02010010"];

        // 设置代理

        vc.messageComposeDelegate = self;

        

        // 显示控制器

        [self presentViewController:vc animated:YES completion:nil]; 

 实现代理方法:

• 代理?方法,当短信界?面关闭的时候调?用,发完后会?自动回到原应?用

- (void)messageComposeViewController:(MFMessageComposeViewController *)controllerdidFinishWithResult:(MessageComposeResult)result

{ // 关闭短信界?面

 *  点击取消按钮会自动调用

 */

 
[controller dismissViewControllerAnimated:YES completion:nil];

if (result == MessageComposeResultCancelled) {NSLog(@"取消发送");

} else if (result == MessageComposeResultSent) {NSLog(@"已经发出");

} else {NSLog(@"发送失败"); 
}

--------------------------------
3,发邮件
 

• 跟发短信的第2种?方法差不多,只不过控制器类名叫做:MFMailComposeViewController
• 假设发送的邮件内容如右图所?示,代码实现看备注 

// 不能发邮件

//        if (![MFMailComposeViewController canSendMail]) return;

        

        MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];

        

        // 设置邮件主题

        [vc setSubject:@"会议"];

        // 设置邮件内容

        [vc setMessageBody:@"今天下午开会吧" isHTML:NO];

        // 设置收件人列表

        [vc setToRecipients:@[@"643055866@qq.com"]];

        // 设置抄送人列表

        [vc setCcRecipients:@[@"1234@qq.com"]];

        // 设置密送人列表

        [vc setBccRecipients:@[@"56789@qq.com"]];

        

        // 添加附件(一张图片)

        UIImage *image = [UIImage imageNamed:@"lufy.png"];

        NSData *data = UIImagePNGRepresentation(image);

        [vc addAttachmentData:data mimeType:@"image/png" fileName:@"lufy.png"];

        

        // 设置代理

        vc.mailComposeDelegate = self;

        // 显示控制器

        [self presentViewController:vc animated:YES completion:nil];

    };

    

 

 • 邮件发送后的代理?方法回调,发完后会?自动回到原应?用

/**

 *  点击取消按钮会自动调用

 */

 

- (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(@"发送失败");

 

}

 

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

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

NSString *appid = @"444934666";
 NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@", appid];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

? ?方法2
NSString *str = [NSString stringWithFormat:

@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid]; 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 
 

iOS 电话/短信/邮件/UIApplication

标签:

原文地址:http://www.cnblogs.com/qq449832375/p/4671854.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!