iOS 通讯录总结

1.简介

iOS 通讯录总结_第1张图片

总体介绍:

iOS 通讯录总结_第2张图片
通讯录的大致介绍
iOS 通讯录总结_第3张图片
iOS通讯录大致使用
iOS 通讯录总结_第4张图片
iOS通讯录大致使用

2. 授权相关

(1)从iOS6开始,必须得到用户授权访问通讯录才能在AppStore上架(即使不授权也有时候可以访问通讯录)
(2)申请通讯录访问授权的代码,通常放在AppDelegate中~!
(3)获得通讯录的授权状态函数:ABAddressBookGetAuthorizationStatus()

例子:获取授权状态

ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();

(4)用户授权状态有4种:

kABAuthorizationStatusNotDetermined  用户未选择,用户还没有决定是否授权你的程序进行访问
kABAuthorizationStatusRestricted iOS设备上一些许可配置阻止程序与通讯录数据库进行交互
kABAuthorizationStatusDenied  用户明确的拒绝了你的程序对通讯录的访问
kABAuthorizationStatusAuthorized  用户已经授权给你的程序对通讯录进行访问

例子:在 AppDelegate的 didFinishLaunchingWithOptions方法中进行授权

#import 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //1. 获取授权状态
    ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();
    //2. 创建 AddrssBook
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
    //3. 没有授权时就授权
    if (status == kABAuthorizationStatusNotDetermined) {
        ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
            //3.1 判断是否出错
            if (error) {
                return;
            }
            //3.2 判断是否授权
            if (granted) {
                NSLog(@"已经授权");
                CFRelease(addressBook);
            } else {
                NSLog(@"没有授权");
            }
        });
    }
    CFRelease(addressBook);
    return YES;
}

3.通讯录的使用

相关链接:iOS 通讯录开发的所有姿势:http://www.jianshu.com/p/55d1c90f62c8#

3.1 实例1

效果:点击通讯录,选择联系人,然后选择相应号码返回填充选择的号码

iOS 通讯录总结_第5张图片
屏幕快照 2017-08-24 下午3.48.52.png
iOS 通讯录总结_第6张图片
屏幕快照 2017-08-24 下午4.07.54.png
iOS 通讯录总结_第7张图片
屏幕快照 2017-08-24 下午4.08.13.png

代码如下:

屏幕快照 2017-08-24 下午3.55.48.png

代理为:ABPeoplePickerNavigationControllerDelegate,CNContactPickerDelegate

iOS 通讯录总结_第8张图片
屏幕快照 2017-08-24 下午3.54.00.png
iOS 通讯录总结_第9张图片
屏幕快照 2017-08-24 下午3.57.27.png
iOS 通讯录总结_第10张图片
屏幕快照 2017-08-24 下午3.58.39.png
iOS 通讯录总结_第11张图片
屏幕快照 2017-08-24 下午3.59.56.png

3.2 实例2

效果:将App上的电话号码保存到手机通讯录

1.点击直接添加到通讯录,不需要跳转,如下图所示,相关链接:https://www.jianshu.com/p/5f5c191756e4;

2.点击需要跳转到通讯录,点击完成才能添加成功,如图所示;不过点击以后需要通过BooL值字段或其他方式来表示这个已经添加过了,下次展示的时候通过BOOL值判断用另外一种cell颜色来表示已经添加过,并且不能点击。这个BOOL值是需要在点击保存完成的时候调用后台接口,传个值给后台,后台来标记是否添加成功。但是有个问题是如果用户把添加成功的号码删除了,这个时候App端如何来监控就不好弄,所以推荐方法一(下面的代码截图中的BOOL值和通知可先忽略,这里还没有调用后台接口)

3.2.1 不需要跳转直接添加

效果图:

iOS 通讯录总结_第12张图片
iOS 通讯录总结_第13张图片
iOS 通讯录总结_第14张图片
iOS 通讯录总结_第15张图片
iOS 通讯录总结_第16张图片

代码:

iOS 通讯录总结_第17张图片
点击cell添加单个
iOS 通讯录总结_第18张图片
点击一键添加多个
iOS 通讯录总结_第19张图片
相关方法
iOS 通讯录总结_第20张图片
相关方法
3.2.2 需要跳转再添加

效果图:

iOS 通讯录总结_第21张图片
点击cell
iOS 通讯录总结_第22张图片
跳转通讯录
iOS 通讯录总结_第23张图片
添加成功
iOS 通讯录总结_第24张图片
iOS 通讯录总结_第25张图片
iOS 通讯录总结_第26张图片
iOS 通讯录总结_第27张图片
iOS 通讯录总结_第28张图片

你可能感兴趣的:(iOS 通讯录总结)