Ios 如何区分CardDAV联系人来源?

Ios 如何区分CardDAV联系人来源?,ios,contacts,addressbook,Ios,Contacts,Addressbook,长期潜伏者,第一次海报。如果我犯了n00b错误,请原谅我 我遇到的问题是以编程方式区分CardDAV源代码 我试图在iphone上找到一个特定的CardDAV源,它对应于我们CardDAV服务器上的帐户。我能看到的唯一有帮助的属性是ABSource.kABSourceNameProperty,但对于每个CardDAV源(如“Contacts”或“AddressBook”),无论用户在手机上使用什么设置,这都只是一些毫无意义的字符串。这意味着应用程序无法确定特定的联系人来源是否是GMail car

长期潜伏者,第一次海报。如果我犯了n00b错误,请原谅我

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

我试图在iphone上找到一个特定的CardDAV源,它对应于我们CardDAV服务器上的帐户。我能看到的唯一有帮助的属性是ABSource.kABSourceNameProperty,但对于每个CardDAV源(如“Contacts”或“AddressBook”),无论用户在手机上使用什么设置,这都只是一些毫无意义的字符串。这意味着应用程序无法确定特定的联系人来源是否是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 - Card ABManager: 4 of 7 sources: exchange - Contacts ABManager: 5 of 7 sources: exchange - Lync Contacts ABManager: 6 of 7 sources: exchange - Suggested Contacts ABManager: 7 of 7 sources: cardDAV - Address Book ABManager:7个来源中的1个:cardDAV- ABManager:7个源中的2个:exchangeGAL-(空) ABManager:7个来源中的3个:cardDAV-Card ABManager:7个来源中的4个:exchange-联系人 ABManager:7个来源中的5个:exchange-Lync联系人 ABM经理:7个来源中的6个:交换-建议联系人 ABManager:7/7来源:cardDAV-地址簿 无法区分3个CardDAV来源中的哪一个是Gmail还是iCloud等

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

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


谢谢你的帮助

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

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

UID属性:

  • vCard 4.0:
  • vCard 3.0:
  • vCard 2.1:(唯一标识符段落)
版本属性(ISO 8601格式的日期/时间):

  • vCard 4.0:
  • vCard 3.0:
  • vCard 2.1:(最后修订段)
您可能还需要手动冲突解决机制


vCard 4.0中引入了一个更复杂的PID属性。然而,vCard 4.0尚未广泛推广

谢谢你的回答。你写下“一旦你知道地址簿,你可能就可以确定源/服务器”——如何?这正是我的问题,我不知道如何在iOS上做到这一点。源(Absolurce)的唯一属性是名称和类型,并且名称未设置为有意义的内容。是否找到解决此问题的方法?否。我的解决方法是首先在服务器上创建联系人,然后通过iOS API(CardDAV)建立连接,找出哪个来源创造了联系。这就是我目前的做法。这里的问题是,应用程序无法知道用户是否曾经从设备上禁用或删除过该帐户。