IOS通訊錄開發<1> 授權應用訪問通訊錄
阿新 • • 發佈:2018-11-09
最近做了個專案要求 訪問使用者的通訊錄並且針對通訊錄裡的資料進行篩選,基於現有的IM使用者體系,進行邀請新增聊天。
首先使用者通訊錄資訊 作為重要的隱私,訪問通訊錄 在IOS6 以上版本 是必須經過使用者同意,才可以訪問。
ABAddressBookRef addressBook =NULL; if([[UIDevice currentDevice].systemVersion floatValue] >= 6.0){ CFErrorRef error = NULL; addressBook =ABAddressBookCreateWithOptions(NULL, &error); ABAuthorizationStatus authorizationStatus =ABAddressBookGetAuthorizationStatus(); // dispatch_semaphore_t sema = dispatch_semaphore_create(0); if(authorizationStatus ==kABAuthorizationStatusNotDetermined){ ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted,CFErrorRef error) { if(granted) NSLog(@"授權"); else NSLog(@"拒絕"); // dispatch_semaphore_signal(sema); }); // dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); } } else { addressBook =ABAddressBookCreate(); }
- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
如果以上程式碼放在AppDelegate裡,程式在第一次啟動的時候會進行提示 “是否允許訪問通訊錄功能