安装
pod ‘APAddressBook’
使用
首先,需要 #import <APAddressBook/APAddressBook.h>
和 #import <APAddressBook/APContact.h>
。
初始化 APAddressBook 对象:APAddressBook *addressBook = [[APAddressBook alloc] init];
判断是否具有相应访问权限:
switch([APAddressBook access])
{
case APAddressBookAccessUnknown:{
// 未询问过用户,请求授权
[addressBook requestAccess:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
[self loadContacts:addressBook];
}
}];
break;
}
case APAddressBookAccessGranted:{
// 已经授权
[self loadContacts:addressBook];
break;
}
case APAddressBookAccessDenied:{
// 用户拒绝授权
[self alert:@"App 需要获得访问通讯录权限,请在'设置'中修改设置"];
break;
}
}
访问通讯簿,加载联系人:
-(void)loadContacts:(APAddressBook*)addressBook{
// don't forget to show some activity
[addressBook loadContacts:^(NSArray <APContact *> *contacts, NSError *error)
{
// hide activity
if (!error)
{
_contacts = [[NSMutableArray alloc]init];
[contacts enumerateObjectsUsingBlock:^(APContact * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSString* phone = obj.phones[0].number;// 只取第一个电话号码
if (isMobilePhone(phone)) {// 只取有效手机号
[_contacts addObject:obj];
}
}];
[self.tableView reloadData];
}else{
NSLog(@"load contacts error:%@",error.localizedDescription);
}
}];
}