在 iOS 5 及更高版本中,Apple 引入了该ABPersonCreatePeopleInSourceWithVCardRepresentation
方法,该方法在将 vCard 输入地址簿并为创建的人员取回 ABRecordRefs 时非常有用。
然而,Apple vCard 似乎(至少有点)与标准 vCard 不同,正如我在尝试将标准 vCard 添加到地址簿时发现的那样。是否有一个页面详细说明了 vCard 的 Apple 格式应该是什么?
谢谢!
在 iOS 5 及更高版本中,Apple 引入了该ABPersonCreatePeopleInSourceWithVCardRepresentation
方法,该方法在将 vCard 输入地址簿并为创建的人员取回 ABRecordRefs 时非常有用。
然而,Apple vCard 似乎(至少有点)与标准 vCard 不同,正如我在尝试将标准 vCard 添加到地址簿时发现的那样。是否有一个页面详细说明了 vCard 的 Apple 格式应该是什么?
谢谢!
ABPersonCreatePeopleInSourceWithVCardRepresentation
文档声明vCard 版本 3 是受支持的协议。不幸的是,如果您在使用标准 vCard 时遇到问题,我不知道如何提供帮助 - 我进行了相当多的搜索(该赏金是很好的动力:P),但无法找到任何进一步的信息。
我没有要测试的 iPhone,但是这个人声称已经使用 QR 扫描仪应用程序(可能正在使用有问题的 API)在iPhone 4 上成功导入了以下 v2.1 vCard 。3.0 规范是 2.1 规范的超集——你能试试这个 vCard 并告诉我它是否有效吗?
BEGIN:VCARD
VERSION:2.1
N:;Company Name
FN:Company Name
ORG:Company Name
TEL;WORK;VOICE;PREF:+16045551212
TEL;WORK;FAX:+16045551213
ADR;WORK;POSTAL;PARCEL;DOM;PREF:;;123 main street;vancouver;bc;v0v0v0;canada
EMAIL;INTERNET;PREF:user@example.com
URL;WORK;PREF:http://www.example.com/
NOTE:http://www.example.com/
CATEGORIES:BUSINESS,WORK
UID:A64440FC-6545-11E0-B7A1-3214E0D72085
REV:20110412165200
END:VCARD
作为最后的解决方案,有很多 vCard 解析器- 这是一个非常简单的协议。您可以使用其中任何一个(或自己编写一个)并使用ABPersonCreatePeopleInSourceWithVCardRepresentation手动将联系人添加到通讯簿。
从 iOS 9 / iPadOS 9 / watchOS 2.0 / macOS 10.11 开始,您应该使用Contacts
框架,而不是使用CNContactVCardSerialization
记录在的格式化程序类
https://developer.apple.com/documentation/contacts/cncontactsuserdefaults
不幸的是,我不再看到支持的 vCard 版本的提及。