一、导入#import
二、添加MFMessageComposeViewControllerDelegate,MFMailComposeViewControllerDelegate代理
三、方法实现
-(void)number:(NSString *)numberStr { if ([self isEmailNumber:numberStr]) { NSLog(@"邮箱"); [[UIApplication sharedApplication]openURL:[NSURL URLWithString:[NSString stringWithFormat:@"mailto:%@",numberStr]]]; }else if ([self isTelPhoneNumber:numberStr]){ NSLog(@"座机"); NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",numberStr]; UIWebView * callWebview = [[UIWebView alloc] init]; [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]]; [self.view addSubview:callWebview]; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:numberStr]]; }else if ([self isMobileNumber:numberStr]){ NSLog(@"手机"); UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *cancleAction=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ }]; UIAlertAction *palyTelephone=[UIAlertAction actionWithTitle:@"打电话" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",numberStr]; UIWebView * callWebview = [[UIWebView alloc] init]; [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]]; [self.view addSubview:callWebview]; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:numberStr]]; }]; UIAlertAction *setMessage=[UIAlertAction actionWithTitle:@"发短信" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init]; vc.recipients = @[[NSString stringWithFormat:@"%@",numberStr]]; // 设置代理 vc.messageComposeDelegate = self; // 以modal的方式跳转到发送短信的控制器 [self presentViewController:vc animated:YES completion:nil]; }]; [alertController addAction:palyTelephone]; [alertController addAction:setMessage]; [alertController addAction:cancleAction]; [self presentViewController:alertController animated:YES completion:^{}]; }else{ } }
pragma mark - 是否座机号??
(BOOL)isTelPhoneNumber:(NSString *)mobileNum{ //验证输入的固话中带 "-"符号 NSString * strNum = @"^(0/d{2,3}-?/d{7,8}$)"; NSPredicate *checktest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strNum]; BOOL isPhene = [checktest evaluateWithObject:mobileNum]; NSString * strNum1 = @"^(/d{7,8}$)"; NSPredicate *checktest1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strNum1]; BOOL isPhene1 = [checktest1 evaluateWithObject:mobileNum]; if (isPhene || isPhene1) { return YES; } return NO; }
pragma mark - 是否是手机号??
(BOOL)isMobileNumber:(NSString )mobileNum { if (mobileNum.length != 11) { return NO; } /* 手机号码: 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9] 移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705 联通号段: 130,131,132,155,156,185,186,145,176,1709 电信号段: 133,153,180,181,189,177,1700 / NSString MOBILE = @"^1((3[0-9]|4[57]|5[0-35-9]|7[0678]|8[0-9])/d{8}$)"; / 中国移动:China Mobile 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705 / NSString CM = @"(1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])/d{8}$)|(1705/d{7}$)"; / 中国联通:China Unicom 130,131,132,155,156,185,186,145,176,1709 / NSString CU = @"(1(3[0-2]|4[5]|5[56]|7[6]|8[56])/d{8}$)|(1709/d{7}$)"; / 中国电信:China Telecom 133,153,180,181,189,177,1700 */ NSString *CT = @"(1(33|53|77|8[019])/d{8}$)|(1700/d{7}$)"; NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE]; NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU]; NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT]; if (([regextestmobile evaluateWithObject:mobileNum] == YES) || ([regextestcm evaluateWithObject:mobileNum] == YES) || ([regextestct evaluateWithObject:mobileNum] == YES) || ([regextestcu evaluateWithObject:mobileNum] == YES)) { return YES; } else { return NO; } }
(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ // 关闭短信界面 [controller dismissViewControllerAnimated:YES completion:nil]; if (result == MessageComposeResultCancelled) { NSLog(@"取消发送"); } else if (result == MessageComposeResultSent) { NSLog(@"已经发出"); } else { NSLog(@"发送失败"); } }