繁体   English   中英

IOS Objective-c - 获取联系人不起作用 - 没有请求提示 - 拒绝访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM