问题标签 [cncontact]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
817 浏览

ios - 以编程方式删除自定义电话标签

在 iOS 中,可以为电话号码和电子邮件地址创建自定义标签。有没有办法以编程方式删除这些创建的标签(使用 CNContacts 或 ABAddressBook)?换句话说:我不想从联系人中删除自定义标签,我想从系统中删除“自定义标签”,这样当有人提出可用列表时它根本不会出现。

附加的 iOS 9 源代码可在电话簿中创建联系人,并在电子邮件字段上使用自定义标签。

0 投票
1 回答
438 浏览

ios - CNContactPicker 授予权限不提示

我正在更新我的应用程序以使用 CNContacts 而不是 AB。我注意到没有提示我向我的联系人授予权限。在下面的开关中,它正确地告诉我我被拒绝访问 - 但它并没有提示我授予它访问权限。此外,它只显示选择器,甚至将所选属性存储到我正在填充的表格视图中......

从通讯录中获取电话号码或电子邮件是否不需要获得许可?如果我是“.Denied”,我很困惑为什么我的代码似乎在工作

0 投票
7 回答
7554 浏览

ios9 - CNContactViewController forUnknownContact 不可用,破坏接口

[似乎已在 iOS 10 中修复!]所以以下内容仅适用于 iOS 9...


我一直在尝试使用 Apple 的新 Contacts 框架,在 CNContactViewController 的三种形式之一中发现了一个巨大的错误。它破坏了周围的界面,使您的应用程序变得无用;用户被卡住了。

为了让这个错误更容易看到,我在https://github.com/mattneub/CNContactViewControllerBug发布了一个示例项目。

要进行实验,请运行项目并执行以下步骤:

  1. 点击按钮(未知人)。

  2. 如果请求,授予访问权限。

  3. 在我们的导航界面中,您会看到部分联系人(请注意顶部的后退按钮)。

  4. 点击添加到现有联系人。出现联系人选择器。

  5. 点击取消。你从这里做什么实际上并不重要,但点击取消是最简单的,也是解决错误的最快方法。

  6. 我们现在回到了部分联系,但是导航界面不见了。用户无法逃离这个界面。该应用程序已被冲洗。

为了澄清起见,这里是您需要采取的步骤的屏幕截图:

在此处输入图像描述

点击添加到现有联系人以查看:

在此处输入图像描述

点击取消查看;观察它与第一个屏幕截图相同,但导航栏不见了

在此处输入图像描述

我已经尝试了很多方法来解决这个错误,但似乎没有办法。据我所知,这个窗口是由“进程外”框架呈现的,而不是你的应用程序的一部分。你无法摆脱它。

那么问题是什么?我想是这样的:谁能告诉我一种使这个视图控制器(以这种形式)可用的方法?有没有我没有找到的解决方法?

编辑此错误出现在 iOS 9.0 中,并且仍然存在于 iOS 9.1 中。在评论中,@SergeySkopus 报告说切换到已弃用的通讯簿框架并没有帮助。该错误位于某处的底层结构中。

0 投票
1 回答
441 浏览

ios - 如何在 Xcode 7/iOS 9 中找到 CNGroup 的成员数

我想CNGroups在 iPhone 的联系人数据库中显示每个人的姓名,以及每个组中的人数。

我有数组CNGroups,所以我可以获得每个组的名称和标识符属性

我可以打电话

然后在使用该谓词上创建一个提取CNContactStore,然后计算返回且有效的数组元素的数量。

这似乎是一种查找成员数量的冗长且处理器密集型的方法,以至于我确信必须有一种更简单的方法来实现这一点。

我错过了什么还是必须这样做?

谢谢。

0 投票
1 回答
1092 浏览

ios - CNContactStore executeSaveRequest 失败并出现(CNErrorDomain 错误 2。)

我正在尝试为我的应用程序删除冗余的 URL。如果一个联系人有多个 URL,这很有效。但如果有链接的联系人,通常保存操作会失败并显示消息“操作无法完成。(CNErrorDomain 错误 2。)”

任何建议如何解决这个问题?统一联系不行吗?如果 URL 的删除应该在单个非统一项目上单独发生,有没有办法从统一项目中获取这些?

这是代码的摘录:

0 投票
0 回答
447 浏览

ios9 - 启用多项选择后,如何使搜索栏与 CNContactPicker 一起使用?

我的项目正在使用ContactsiOS 9 中引入的新框架

我的几个UITableView子类调用了 a CNContactPicker,我想利用顶部出现的搜索栏。

其中一些视图只实现了委托方法 -contactPicker:didSelectContact:另一个实现了该方法和 - contactPicker:didSelectContacts:,其实现导致CNContactPicker允许多项选择。

我让各种类声明它们是UISearchControllerDelegates,并且很高兴看到这就是使用我的 contactPicker 委托方法进行选择所需的全部内容。

不幸的是,第三个视图不起作用 - 您在搜索字段中输入,它会根据您输入的内容提供一个过滤器列表,但是当您点击选择时,选择会突出显示,但没有任何反应。如果我回到代码并注释掉contactPicker:didSelectContacts: 方法,那么它就可以工作,

大概有一种方法可以做出响应,否则CNContactPicker当允许进行多项选择时,视图不会显示搜索栏。

我应该怎么做才能完成这项工作?

0 投票
4 回答
6409 浏览

ios - 从 CNContactProperty 提取电子邮件 - iOS 9

我有一个需要访问联系人选择器视图控制器的 iOS 应用程序,以允许用户选择联系人属性,例如电子邮件地址/ imessage 电子邮件地址的电话号码。

我现在遇到的问题是我无法弄清楚如何解析返回的数据。我已经使用了该contactPicker didSelectContactProperty方法,但我无法解析我需要的数据。

如果你运行上面的代码,你会得到以下响应:

太好了,但是如何从中提取我需要的数据呢?为什么 NSLog 语句以奇怪的格式返回数据?

谢谢你的时间,丹。

0 投票
1 回答
1040 浏览

ios - CNSaveRequest 返回“更新的记录不存在”

我正在调试的代码尝试通过 iOS 9 中的新 CNContacts 框架将联系人保存到 Contacts.app。但是它失败并返回此错误。该代码不是更新记录,而是尝试创建新记录。为什么我得到这个错误?

错误域=CNErrorDomain 代码=200 "更新的记录不存在" UserInfo={CNInvalidRecordIdentifiers=( ... ), NSLocalizedDescription=更新的记录不存在, NSLocalizedFailureReason=保存请求失败,因为它更新了不存在或有的记录已被删除。}

0 投票
2 回答
2749 浏览

ios - 联系人框架在读取 imageData 时引发异常

0 投票
2 回答
2000 浏览

ios - 如何使用 CNContact API 获取用户排序顺序

我知道我可以像这样使用 CNContacts 进行排序:

问题是:我如何找到排序顺序?除了检查从 fetch 枚举返回的内容的一些 hacky 启发式方法。

有一个旧的 ABPersonGetSortOrdering() 调用可能会保留一段时间,但肯定有一种 CNContact 方法可以做到这一点。