一、打电话
NSString *phoneNum = @"";// 电话号码
NSString *num = [[NSString alloc] initWithFormat:@"telprompt://%@",phoneNum]; //而这个方法则打电话前先弹框 是否打电话 然后打完电话之后回到程序中 网上说这个方法可能不合法 无法通过审核
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:num]]; //拨号
打电话很简单,但是这个不确定是否能通过审核...
二、发邮件
第一步:看看用户的设备是否能发邮件、是否设置过邮件账户,否则将不能使用
//激活邮件功能
- (void)sendMailInApp
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (!mailClass) {
(NSLog:@"提示" message:@"当前系统版本不支持应用内发送邮件功能");
return;
}
if (![mailClass canSendMail]) {
(NSLog:@"用户没有设置邮件账户");
return;
}
[self sendEmail];
}
第二步:调用发邮件的ViewController,首先加入 MessageUI.FrameWork,然后在你需要的地方#import<MessageUI/MFMailComposeViewController.h>,就可以正常使用了。
//发送邮件的视图创建
-(void)sendEmailVC{
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
//设置收件人
NSString *emailAddress = @"abc@163.com";
[mc setToRecipients:[NSArray arrayWithObjects:emailAddress,nil]];
//设置主题
[mc setSubject:@"这是主题"];
//设置CC,就是抄送
[mc setCcRecipients:[NSArray arrayWithObject:@"zhuqil@163.com"]];
//设置邮件主题,这是纯文本格式
[mc setMessageBody:@"Watson!!!\n\nCome here, I need you!" isHTML:NO];
//设置邮件主题,HTML格式
//[mc setMessageBody:@"<HTML><B>Hello, Joe!</B><BR/>What do you know?</HTML>" isHTML:YES];
//添加附件,需要三个参数,一个是NSData类型的附件,一个是mimetype,一个是附件名称
NSString *path = [[NSBundle mainBundle] pathForResource:@"blood_orange" ofType:@"png"];
NSData *data = [NSData dataWithContentsOfFile:path];
[mc addAttachmentData:data mimeType:@"image/png" fileName:@"blood_orange"];
[self presentViewController:mc animated:YES completion:nil];
}
第三步:我们需要使用它的代理来完成发送结果返回的操作,当然需要MFMailComposeViewControllerDelegate
//邮件代理
#pragma mark - MFMailComposeViewControllerDelegate
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error {
switch (result)
{
case MFMailComposeResultCancelled:
[self alertShowWithTitle:@"提示" message:@"邮件发送已取消"];
break;
case MFMailComposeResultSaved:
[self alertShowWithTitle:@"提示" message:@"邮件已保存"];
break;
case MFMailComposeResultSent:
[self alertShowWithTitle:@"提示" message:@"邮件已发送,我们将在2个工作日内回应!"];
break;
case MFMailComposeResultFailed:
[self alertShowWithTitle:@"提示" message:@"邮件发送失败,请核实相关信息"];
break;
default:
break;
}
[controller dismissViewControllerAnimated:YES completion:nil];
}