iOS 系统发邮件,发短信,打电话,粘贴板

来源:互联网 发布:亦雨轩民生抢购软件 编辑:程序博客网 时间:2024/05/04 20:37

1、要想利用系统的邮箱系统,首先需要包函头文件,

#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属性就可以了。

0 0
原创粉丝点击