美文网首页
2020-03-31

2020-03-31

作者: c25b | 来源:发表于2020-03-31 11:01 被阅读0次

    1.设置 info.plist 的Privacy - Contacts Usage Description

    2.导入头文件

    #import <Contacts/Contacts.h>

    3.通过代码获取

    //请求通讯录权限#pragmamark 请求通讯录权限

    - (void)requestContactAuthorAfterSystemVersion9{

        CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];

        if (status == CNAuthorizationStatusNotDetermined) {

            CNContactStore *store = [[CNContactStore alloc] init];

            [storerequestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError*  _Nullable error) {

                if(error) {

                    NSLog(@"授权失败");

                }else{

                    NSLog(@"成功授权");

                }

            }];

        }

        else if(status == CNAuthorizationStatusRestricted)

        {

            NSLog(@"用户拒绝");

            [self showAlertViewAboutNotAuthorAccessContact];

        }

        else if (status == CNAuthorizationStatusDenied)

        {

            NSLog(@"用户拒绝");

            [self showAlertViewAboutNotAuthorAccessContact];

        }

        else if (status == CNAuthorizationStatusAuthorized)//已经授权

        {

            //有通讯录权限-- 进行下一步操作

            [selfopenContact];

        }

    }

    //有通讯录权限-- 进行下一步操作

    - (void)openContact{

     // 获取指定的字段,并不是要获取所有字段,需要指定具体的字段

        NSArray *keysToFetch = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey];

        CNContactFetchRequest *fetchRequest = [[CNContactFetchRequest alloc] initWithKeysToFetch:keysToFetch];

        CNContactStore*contactStore = [[CNContactStorealloc]init];

        [contactStoreenumerateContactsWithFetchRequest:fetchRequesterror:nilusingBlock:^(CNContact*_Nonnullcontact,BOOL*_Nonnullstop) {

            NSLog(@"-------------------------------------------------------");

            NSString*givenName = contact.givenName;

            NSString*familyName = contact.familyName;

              NSLog(@"givenName=%@, familyName=%@", givenName, familyName);

            //拼接姓名

            NSString*nameStr = [NSStringstringWithFormat:@"%@%@",contact.familyName,contact.givenName];

            NSArray*phoneNumbers = contact.phoneNumbers;

            //        CNPhoneNumber  * cnphoneNumber = contact.phoneNumbers[0];

            //        NSString * phoneNumber = cnphoneNumber.stringValue;

            for(CNLabeledValue*labelValueinphoneNumbers) {

            //遍历一个人名下的多个电话号码

                    NSString*label = labelValue.label;

             //  NSString *    phoneNumber = labelValue.value;

                CNPhoneNumber*phoneNumber = labelValue.value;

                NSString* string = phoneNumber.stringValue;

                //去掉电话中的特殊字符

                string = [stringstringByReplacingOccurrencesOfString:@"+86" withString:@""];

                string = [stringstringByReplacingOccurrencesOfString:@"-" withString:@""];

                string = [stringstringByReplacingOccurrencesOfString:@"(" withString:@""];

                string = [stringstringByReplacingOccurrencesOfString:@")" withString:@""];

                string = [stringstringByReplacingOccurrencesOfString:@" " withString:@""];

                string = [stringstringByReplacingOccurrencesOfString:@" " withString:@""];

            NSLog(@"姓名=%@, 电话号码是=%@", nameStr, string);

            }

            //    *stop = YES; // 停止循环,相当于break;

        }];

    }

    //提示没有通讯录权限

    - (void)showAlertViewAboutNotAuthorAccessContact{

        UIAlertController *alertController = [UIAlertController

            alertControllerWithTitle:@"请授权通讯录权限"

            message:@"请在iPhone的\"设置-隐私-通讯录\"选项中,允许花解解访问你的通讯录"

            preferredStyle: UIAlertControllerStyleAlert];

        UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];

        [alertControlleraddAction:OKAction];

        [self presentViewController:alertController animated:YES completion:nil];

    }

    相关文章

      网友评论

          本文标题:2020-03-31

          本文链接:https://www.haomeiwen.com/subject/ixxwuhtx.html