一、导入#import <MessageUI/MessageUI.h>框架
二、添加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(@"发送失败");
}
}