美文网首页
iOS中如何访问用户的通讯录(三)

iOS中如何访问用户的通讯录(三)

作者: Paulpang | 来源:发表于2016-11-03 19:38 被阅读91次
上一篇文章已经介绍了关于AddressBook.framework框架访问通讯的方法,今天来介绍一下利用RHAddressBook框架来实现访问用户通讯录:
该第三方框架地址为: RHAddressBook , 关于这个第三方框架的安装,请查看一下文档Using Static iOS Libraries

利用RHAddressBook访问用户的通讯录达到时候,首先需要用户进行授权,如果用户已经同意,才可以访问用户的通讯录信息:

让用户授权需要在AppDelegate里面实现 :

#import <RHAddressBook/AddressBook.h>

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    // 1.获取授权状态
    RHAuthorizationStatus status = [RHAddressBook authorizationStatus];
    
    // 2.判断授权状态,如果未决定状态,则请求授权
    if (status == RHAuthorizationStatusNotDetermined) {
        // 3.创建通信录对象
        RHAddressBook *addressBook = [[RHAddressBook alloc] init];
        
        // 4.请求授权
        [addressBook requestAuthorizationWithCompletion:^(bool granted, NSError *error) {
            if (granted) {
                NSLog(@"授权成功");
            } else {
                NSLog(@"授权失败");
            }
        }];
    }
    
    return YES;
}



在完成授权以后,在进行访问用户的通讯录,代码如下:


#import "ViewController.h"
#import <RHAddressBook/AddressBook.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 1.获取授权状态
    RHAuthorizationStatus status = [RHAddressBook authorizationStatus];
    
    // 2.判断如果是未授权,则直接返回
    if (status != RHAuthorizationStatusAuthorized) return;
    
    // 3.创建通信录
    RHAddressBook *addressBook = [[RHAddressBook alloc] init];
    
    // 4.获取所有的联系人
    NSArray *peopleArray = addressBook.people;
    
    // 5.遍历所有的联系人
    for (RHPerson *person in peopleArray) {
        
        // 6.获取联系人的姓名
        NSLog(@"%@ %@", person.firstName, person.lastName);
        
        // 7.获取电话号码
        RHMultiValue *phones = person.phoneNumbers;
        for (int i = 0; i < phones.count; i++) {
            // 8.获取电话号码和对应的Label
            NSString *phoneLabel = [phones labelAtIndex:i];
            NSString *phoneValue = [phones valueAtIndex:i];
            
            NSLog(@"%@ %@", phoneLabel, phoneValue);
        }
    }
}




关于访问用户通讯录的方法,已经介绍完,如果感觉对您有用,请您动动小手指点一个star,并关注我,您的支持是对我最大的支持!

相关文章

  • 重点 (二十九) : 通讯录

    如何访问用户的通讯录 在iOS中,有2个框架可以访问用户的通讯录 AddressBookUI.framework ...

  • iOS中如何访问用户的通讯录(三)

    上一篇文章已经介绍了关于AddressBook.framework框架访问通讯的方法,今天来介绍一下利用RHAdd...

  • iOS13&Xcode11适配问题

    1.通讯录权限问题iOS 13中将禁止应用开发者访问用户通讯录备注信息,需将keys中的CNContactNote...

  • iOS中如何访问用户的通讯录(二)

    上一篇文章已经介绍了关于AddressBookUI.framework框架访问通讯的方法,这种方法是有界面展示到用...

  • iOS中如何访问用户的通讯录(一)

    在iOS中,有2个框架可以访问用户的通讯录 : AddressBookUI.framework提供了联系人列表界面...

  • iOS中访问用户的通讯录

    iOS9之前用ABAddressBookRef获取通讯录内容,在iOS9之后(包括iOS9)用CNContactS...

  • 获取系统通讯录

    支持本文作者Mr_洛先森,请阅读原文获取通讯录样式: 在ios中,有两个框架可以访问用户的通讯录 AddressB...

  • IOS"探望"->通讯录

    在ios中,有两个框架可以访问用户的通讯录 AddressBookUI.framework提供了联系人列表界面, ...

  • ios 系统权限设置

    iOS10配置须知 在iOS10中,如果你的App想要访问用户的相机、相册、麦克风、通讯录等等权限,都需要进行相关...

  • 通讯录

    如何访问用户的通讯录: 授权状态 申请访问通讯录 联系人属性定义 简单属性 获得所有的联系人数据 CoreFoun...

网友评论

      本文标题:iOS中如何访问用户的通讯录(三)

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