whatsapp 如何在 iOS 中更快地从通讯录中获取更新的联系人?

How whatsapp get updated contacts from addressbook faster in iOS?

我的发现

我正在设计一个逻辑来与我的后端同步联系人。我浏览了一些在 IOS 中做同样事情的应用程序。我将以 WhatsApp 为例,我发现当我更新 Native Addressbook 中的任何联系人时,它会以一小部分反映到 Whatsapp 中。

我的关注

我只想知道它是如何以更快的方式同步的。即使是新联系人也会与其远程服务器同步并显示在联系人上,并且如果该号码已注册,则可以启动 Whatsapp 聊天。

查询摘要

所以,简而言之,我的问题是,

  1. Whatsapp 如何同步联系人?
  2. whatsapp 如何从本机地址簿获取刚刚更新的联系人列表(如果它正在这样做)?
  3. whatsapp 是如何在地址簿中添加新联系人的,有没有像时间戳或其他任何东西一样管理的东西?

我知道有下面的东西,

ABAddressBookGetPersonCount
ABAddressBookGetPersonWithRecordID
ABAddressBookCopyArrayOfAllPeople

使用 ABAddressBookGetPersonCount 我可以知道是否有任何新的联系人,但我仍然如何能够知道它的记录 ID 而无需使用 ABAddressBookCopyArrayOfAllPeople

迭代每个联系人

所以我只是在询问如何获取刚刚更新的列表。

方法是registering an external change callback。这样,您的应用程序将在地址簿发生任何更改时立即收到通知。