[英]IOS Objective-c - Getting contacts not working - No request prompt - Access denied
我正在使用 Objective-c 为 iPad 开发应用程序。 我需要获取联系人的地址簿。 但是我没有收到访问请求提示并且访问被拒绝。 布尔值“授予”永远不会为真,并且永远不会到达获取联系人数组的代码。 因此,contacts 数组contactsArray 保持为空。
以下是我正在使用的代码:
-(void) fetchAllContacts
{
contactsArray = [[NSMutableArray alloc] init];
CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType : CNEntityTypeContacts completionHandler : ^(BOOL granted, NSError * _Nullable error)
{
if (granted)
{
// Code to get the contacts array
// contactsArray = ....
}
}];
}
有什么帮助吗?
谢谢
iOS 只会呈现一次模态访问请求提示。 如果您第一次拒绝访问,该应用程序将无法访问它,直到用户在 iOS 设置中更改应用程序的权限。
一种选择是使用UIApplicationOpenSettingsURLString
作为 URL 显示一个自定义提示,说访问被拒绝,并通过一个按钮直接导航到应用程序设置页面。
//objc
NSURL * url = [[NSURL alloc] initWithString:UIApplicationOpenSettingsURLString];
[UIApplication.sharedApplication openURL:url];
//swift
if let url = URL(string: UIApplicationOpenSettingsURLString) {
UIApplication.shared.openURL(url)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.