iOS 系统发邮件,发短信,打电话,粘贴板
2016-05-10 15:48
489 查看
1、要想利用系统的邮箱系统,首先需要包函头文件,
2、发送邮件有2中方式,建议用真机调试,
(1)直接使用[[UIApplication sharedApplication]openURL:]方式打来,但是缺点就是在操作完邮件(发送,取消)之后,不会跳回到当前的应用程序,而是停留在邮件界面,并且不能设置其他的属性,这个不需要遵守代理,
系统的邮件发送的内容就那么多,其实用起来很简单的,下面介绍一下系统信息的使用。
3、系统发短信的调用和邮件的方式差不多,首先你需要包含头文件,
4、系统的发短信调用同样有2中方式,
(1)利用[[UIApplication sharedApplication]openURL:]方式打来,但是缺点就是在操作完(发送,取消)之后,不会跳回到当前的应用程序,不能设置其他的属性,这个不需要遵守代理,
(2)使用代理方式调用发短信,首先遵守代理MFMessageComposeViewControllerDelegate,设置代理,实现代理方法,这个方法的优点就是,在当前页面调用发短信界面,操作完成之后,会停留在当前界面的,设置代理的时候注意一下,
然后实现代理,不然的话,操作完成之后,短信界面不消失,
短信的操作基本上就那么多了。
5、系统的拨打电话,直接调用一个方法就可以了,
6、系统的粘贴板
系统的粘贴板其实很简单,就是在UIPasteboard类中的,
一般粘贴信息的话,就用到string属性就可以了。
#import <MessageUI/MFMailComposeViewController.h> // #import <MessageUI/MessageUI.h> // 导入这个头文件的话,也可以(包含邮件,信息头文件)
2、发送邮件有2中方式,建议用真机调试,
(1)直接使用[[UIApplication sharedApplication]openURL:]方式打来,但是缺点就是在操作完邮件(发送,取消)之后,不会跳回到当前的应用程序,而是停留在邮件界面,并且不能设置其他的属性,这个不需要遵守代理,
if ([MFMailComposeViewController canSendMail]) { // 判断是非可以发送邮件 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:[NSString stringWithFormat:@"mailto://%@",@"XXX@qq.com"]]]; } else { NSLog(@"暂不支持发送邮件"); }
(2)遵守邮件的代理,MFMailComposeViewControllerDelegate,设置代理,实现代理方法,这个方法的优点就是,在当前页面调用邮件界面,操作完成之后,会停留在当前界面的,
if ([MFMailComposeViewController canSendMail]) { // 判断是非可以发送邮件 MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init]; mailVC.mailComposeDelegate = self; // 不要使用mailVC.delegate代理,用这个代理的话,下面的代理是不调用的 [mailVC setSubject:@"hahahahah"]; // 设置邮件主题 [mailVC setToRecipients:@[@"XXX@docy.co"]]; // 设置接收者(发送给谁),可以有多个 [mailVC setCcRecipients:@[@"aaa@docy.co",@"bbb@docy.co"]]; // 设置抄送者(抄送给谁),可以有多个 [mailVC setBccRecipients:@[@"qqq@docy.co",@"www@docy.co"]];// 设置密送者(密送给谁),可以有多个 [mailVC setMessageBody:@"behvfebuyvbdyusefvdv" isHTML:NO]; // 设置邮件发送内容 // [mailVC addAttachmentData:<#(nonnull NSData *)#> mimeType:<#(nonnull NSString *)#> fileName:<#(nonnull NSString *)#>] // 给邮件添加附件(文件等) [self presentViewController:mailVC animated:YES completion:nil]; } else { NSLog(@"暂不支持发送邮件"); }
代理方法:回调结果有4中 MFMailComposeResultCancelled, // 取消 MFMailComposeResultSaved, // 保存 MFMailComposeResultSent, // 发送成功 MFMailComposeResultFailed // 发送失败
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ if (MFMailComposeResultCancelled == result || result == MFMailComposeResultFailed) { NSLog(@"取消发送"); } else if (result == MFMailComposeResultSent){ NSLog(@"发送成功"); } [self dismissViewControllerAnimated:YES completion:nil]; }
系统的邮件发送的内容就那么多,其实用起来很简单的,下面介绍一下系统信息的使用。
3、系统发短信的调用和邮件的方式差不多,首先你需要包含头文件,
#import <MessageUI/MFMessageComposeViewController.h> #import <MessageUI/MessageUI.h> // 导入这个头文件的话,也可以(包含邮件,信息头文件)
4、系统的发短信调用同样有2中方式,
(1)利用[[UIApplication sharedApplication]openURL:]方式打来,但是缺点就是在操作完(发送,取消)之后,不会跳回到当前的应用程序,不能设置其他的属性,这个不需要遵守代理,
if ([MFMessageComposeViewController canSendText]) { // 判断是否可以发送信息 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://13888888888"]]; } else { NSLog(@"暂不支持发送信息"); }
(2)使用代理方式调用发短信,首先遵守代理MFMessageComposeViewControllerDelegate,设置代理,实现代理方法,这个方法的优点就是,在当前页面调用发短信界面,操作完成之后,会停留在当前界面的,设置代理的时候注意一下,
if ([MFMessageComposeViewController canSendText]) { // 判断是否可以发送信息 MFMessageComposeViewController *message = [[MFMessageComposeViewController alloc] init]; message.messageComposeDelegate = self; // 设置代理(不是message.delegate,这个代理是操作导航栏的代理) message.recipients = @[@"11111122222",@"22222222222"]; // 设置信息接收着 message.body = @"hahah"; // 设置发送内容(输入框中的信息) message.navigationBar.tintColor = [UIColor redColor]; [self presentViewController:message animated:YES completion:nil]; } else { NSLog(@"暂不支持发送信息"); }
然后实现代理,不然的话,操作完成之后,短信界面不消失,
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ // MessageComposeResultCancelled, // MessageComposeResultSent, // MessageComposeResultFailed if (result == MessageComposeResultCancelled) { NSLog(@"取消发送"); } else if (result == MessageComposeResultSent) { NSLog(@"发送成功"); } else if (result == MessageComposeResultFailed) { NSLog(@"发送失败"); } [controller dismissViewControllerAnimated:YES completion:nil]; }
短信的操作基本上就那么多了。
5、系统的拨打电话,直接调用一个方法就可以了,
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel://18888888888"]];
6、系统的粘贴板
系统的粘贴板其实很简单,就是在UIPasteboard类中的,
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; // pasteboard.string=@"aaaaaaa"; // 复制文本 // pasteboard.strings = @[@"wwwww",@"eeee"]; // 同时复制多个文本 pasteboard.image = [UIImage imageNamed:@"1"]; // 复制文本 // pasteboard.images = @[[UIImage imageNamed:@"1"],[UIImage imageNamed:@"2"]]; // 同时复制多个图片 pasteboard.color = [UIColor redColor]; // 复制文本 // pasteboard.colors = @[[UIColor redColor],[UIColor redColor]]; // 同时复制多个颜色
一般粘贴信息的话,就用到string属性就可以了。
相关文章推荐
- iOS开发——二级列表
- iOS中 单例设计模式 的使用方法
- iOS左滑手势返回的实现
- 断点下载/断点续传
- iOS手机号判断方法
- iOS播放gif图方式
- iOS动画浅汇
- ios 开发之 原生+html5混合开发方法互调
- 安装ios beta版
- iOS 日历签到制作
- iOS 单例模式之线程安全demo
- iOS quartzCore第六章—— CAReplicatorLayer的运用
- iOS TextField正则表达式输入验证 NSPredicate谓词匹配
- iOS巅峰之layoutSubviews在什么时候调用
- iOS中Bitcode的介绍及配置
- ios客户端学习-iOS使用png,jpg的区别
- IOS 单例模式的写法
- iOS 改变Label字号大小
- nagios
- IOS文件操作的两种方式:NSFileManager操作和流操作