一.打电话
打电话有3种实现方式
(1)
这种方式从APP中打电话后,会停留在通信录界面,要手动才能回到App界面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://%@", phoneNum]]; // phoneNum电话号码
这种方式打完电话后会返回app
但是:telprompt协议属于苹果的私有协议,一旦程序中使用了此协议,程序无法上架, 针对越狱的机器开发的系统,可以使用此协议
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://%@", phoneNum]];
if (_webView == nil) { _webView = [[UIWebView alloc] init]; } NSURL *url = [NSURL URLWithString:@"tel://10010"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [_webView loadRequest:request]; [self.view addSubview:_webView]; }
有2种方式
(1)弹出发短信到phoneNum界面 ,无法指定短信内容,发完短信后不返回app
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://%@",phoneNum]];
如果自定义短信,可以做如下操作:
加入:MessageUI.framework
#import <MessageUI/MFMessageComposeViewController.h>
实现代理:MFMessageComposeViewControllerDelegate
优点
1. 从应用出去能回来
2. 可以多人
3. 可以自定义消息,消息支持HTML格式的
而且如果在苹果系统中,如果彼此的手机都是iOS设备,并且开通了iMessage功能,彼此之间的短信
// bodyofmessage:信息内容 recipients:电话号码数组(可以发短信给10个人(数组中的号码)) - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients { MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = bodyOfMessage; controller.recipients = recipients; controller.messageComposeDelegate = self; [self presentViewController:controller animated:YES completion:nil]; } }
// 处理发送完的响应结果 - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ if (result == MessageComposeResultCancelled) NSLog(@"Message cancelled"); else if (result == MessageComposeResultSent) NSLog(@"Message sent"); else NSLog(@"Message failed"); [self dismissViewControllerAnimated:YES completion:nil];
三.发送邮件
发送邮件的为:导入#import <MessageUI/MFMailComposeViewController.h>
实现代理:MFMailComposeViewControllerDelegate
三.发送邮件 发送邮件的为: 导入#import <MessageUI/MFMailComposeViewController.h> 实现代理:MFMailComposeViewControllerDelegate //发送邮件 -(void)sendMail:(NSString *)subject content:(NSString *)content{ MFMailComposeViewController *controller = [[[MFMailComposeViewController alloc] init] autorelease]; if([MFMailComposeViewController canSendMail]) { [controller setSubject:subject]; [controller setMessageBody:content isHTML:NO]; controller.mailComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } } //邮件完成处理 -(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ [self dismissModalViewControllerAnimated:YES]; if (result == MessageComposeResultCancelled) NSLog(@"Message cancelled"); else if (result == MessageComposeResultSent) NSLog(@"Message sent"); else NSLog(@"Message failed"); }