首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AddressBookUI视图控制器在iOS 7中的行为不像预期的那样

AddressBookUI视图控制器在iOS 7中的行为不像预期的那样
EN

Stack Overflow用户
提问于 2013-09-30 11:27:31
回答 1查看 788关注 0票数 2

从苹果公司的发布说明来看:

从Seed 4开始,针对AddressBookUI 7 SDK链接的应用程序重新启用了对iOS框架的隐私支持。连接到旧SDK的应用程序不会改变。如果您的应用程序使用了任何地址簿视图控制器,则应该验证它是否仍按预期运行。

问题是,如果视图控制器仍然不像预期的那样运行,那么可以做什么。

“重新启用隐私支持”意味着什么?

我之所以遇到这种情况,是因为我们的应用程序无法再访问来自ActiveSync组的Microsoft ABPeoplePickerNavigationController全球地址列表。所以不,它的行为并不像预期的那样(它在iOS 6中的行为方式)。

编辑:从iOS 7.0.3 (也许更早)开始,就已经修复了这个问题。

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 13:43:38

我们有同样的问题,山姆在我们的应用程序,以及。当用户试图使用ABPeoplePickerNavigationController导入联系人并访问组页面时,就会发生这种情况:

  • 有时导航控制器的标题将包含两个名称:联系人和组
  • 点击OK按钮可能会很棘手,大多数用户会报告冻结,而退出ABPeoplePickerNavigationController则是不可能的
  • 访问列表似乎是允许的,但不显示任何数据,只是一个空的tableView

在Sam的突出显示之后,我们考虑明确请求用户允许访问他们的通讯簿。自从iOS 6引入了它之后,我们就没有使用它来导入联系人,因为ABPeoplePickerNavigationController本身正在处理这个问题。

无论如何,我们一直在使用:

代码语言:javascript
复制
ABAddressBookRef addressBook = ABAddressBookCreate();

__block BOOL accessGranted = NO;
if (ABAddressBookRequestAccessWithCompletion != NULL) { // we're on iOS 6
    dispatch_semaphore_t sema = dispatch_semaphore_create(0);
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
    accessGranted = granted;
    dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);   
}
else { // we're on iOS 5 or older
    accessGranted = YES;
}

if (accessGranted) {
    // Do whatever you want here.
}

有关更多信息,请参见此处:Programmatically Request Access to Contacts

这并不能解决这个问题,因为访问已经被正确地授予。

我们在设置/一般/重置/重置位置和隐私中重置了隐私设置。

对用户联系人列表的访问按预期正确请求,但上述行为仍然相同。

如果有人对如何解决这个问题有任何解释的话,那就太好了。

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19093069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档