12

在 iOS 5 及更高版本中,Apple 引入了该ABPersonCreatePeopleInSourceWithVCardRepresentation方法,该方法在将 vCard 输入地址簿并为创建的人员取回 ABRecordRefs 时非常有用。

然而,Apple vCard 似乎(至少有点)与标准 vCard 不同,正如我在尝试将标准 vCard 添加到地址簿时发现的那样。是否有一个页面详细说明了 vCard 的 Apple 格式应该是什么?

谢谢!

4

3 回答 3

10

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

您可以在此处此处阅读官方 3.0 规范。

作为最后的解决方案,有很多 vCard 解析器- 这是一个非常简单的协议。您可以使用其中任何一个(或自己编写一个)并使用ABPersonCreatePeopleInSourceWithVCardRepresentation手动将联系人添加到通讯簿。

于 2013-01-12T07:00:01.597 回答
1

我创建了一个向后兼容的VCard 类,它生成 .vcf 文件。但是对于 < iOS 8 的 iOS 设备,该类导出为 .ics 文件(然后将 VCard 包装在 VCalendar 文件中),因为这是在旧 iOS 版本上运行的唯一方法!

被成千上万的人使用!在GitHub 上查看

于 2016-05-31T07:45:57.863 回答
0

从 iOS 9 / iPadOS 9 / watchOS 2.0 / macOS 10.11 开始,您应该使用Contacts框架,而不是使用CNContactVCardSerialization记录在的格式化程序类

https://developer.apple.com/documentation/contacts/cncontactsuserdefaults

不幸的是,我不再看到支持的 vCard 版本的提及。

于 2021-11-19T10:33:36.573 回答