gpt4 book ai didi

ios - 如何区分 CardDAV 联系人来源?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:48 28 4
gpt4 key购买 nike

长期潜伏者,首次张贴者。如果我犯了 n00b 个错误,请原谅我。

我遇到的问题是以编程方式区分 CardDAV 源

我试图在 iphone 上找到一个特定的 CardDAV 源,它对应于我们的 cardDAV 服务器上的帐户。我能看到的唯一应该有帮助的属性是 ABSource.kABSourceNameProperty,但这对于每个 CardDAV 源(如“联系人”或“地址簿”)来说只是一些无意义的字符串,无论用户在手机上使用什么设置。这意味着该应用无法确定特定联系人来源是否为 GMail cardDAV、iCloud cardDAV、我们的 CardDAV 等。

例如,以下是具有 iCloud、Exchange、Gmail 和 Facebook 联系人来源的设备的来源类型和名称:

ABManager: 1 of 7 sources: cardDAV - ABManager: 2 of 7 sources: exchangeGAL - (null)ABManager: 3 of 7 sources: cardDAV - CardABManager: 4 of 7 sources: exchange - ContactsABManager: 5 of 7 sources: exchange - Lync ContactsABManager: 6 of 7 sources: exchange - Suggested ContactsABManager: 7 of 7 sources: cardDAV - Address Book

无法分辨 3 个 CardDAV 源中的哪一个是 Gmail 还是 iCloud 等。

我如何在 iOS 上比较不同的 CardDAV 联系人来源,并确定哪个属于我们的 CardDAV 服务器?

背景,以防有帮助:我正在开发一个 iOS 应用程序,帮助用户将联系人从他们现有的联系人来源复制到我们服务器上的 cardDAV 联系人来源。换句话说:用户设置了一个新的 CardDAV 帐户(源通过 .mobileprovision 配置文件安装在 iPhone 上),现在他们运行此应用程序以将联系人复制到新的 CardDav 帐户。

感谢您的帮助!

最佳答案

如果联系人来自 CardDAV 服务器提供的地址簿,您现在可能知道此联系人来自的地址簿。一旦您知道地址簿,您就可以确定来源/服务器。

但是我认为您的问题更多是同步问题。如果您系统中的每个 vCard 都有一个唯一标识符 (UID) 和修订号 (REV),并且知道每个属性的基数,您就可以构建某种自动同步机制。

UID 属性:

REV 属性(ISO 8601 格式的日期/时间):

您可能还需要一个手动冲突解决机制。

一个更复杂的synchronization mechanism在具有 PID 属性的 vCard 4.0 中引入。然而 vCard 4.0 还没有广泛普及。

关于ios - 如何区分 CardDAV 联系人来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20381056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com