Правильный формат vCard для устройств iOS?

В iOS 5 и выше Apple представила метод ABPersonCreatePeopleInSourceWithVCardRepresentation, который очень полезен при подаче визитной карточки в адресную книгу и возврате ABRecordRefs для созданных лиц.

Тем не менее, визитная карточка Apple по-видимому (по крайней мере, немного) отличается от стандартной vCard, как я выяснил при попытке добавить стандартные визитные карточки в адресную книгу. Есть ли страница, где подробно описывается формат Apple для vCard?

Спасибо!

Ответ 1

В документах ABPersonCreatePeopleInSourceWithVCardRepresentation указано, что vCard версия 3 является поддерживаемым протоколом. К сожалению, если у вас возникли проблемы со стандартной vCard, я не уверен, как помочь - я немного поработал (эта щедрость - хорошая мотивация: P) и не могла найти никакой дополнительной информации.

У меня нет моего iPhone для тестирования, но этот парень утверждает, что успешно импортировал следующую vCard v2.1 vCard на iPhone 4, используя QR сканер (который может использовать данный API). 3.0 spec - это надмножество спецификации 2.1. - можете ли вы попробовать эту визитную карточку и сообщить мне, если она работает?

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:[email protected]
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 spec здесь и здесь.

Как последнее решение канавы, есть множество парсеров vCard там - это мертвый простой протокол. Вы можете просто взять любой из них (или написать один самостоятельно) и вручную добавить контакт в адресную книгу, используя ABPersonCreatePeopleInSourceWithVCardRepresentation.

Ответ 2

Я создал обратно-совместимый класс VCard, который генерирует файлы .vcf. Но для устройств iOS, iOS 8, класс экспортирует в .ics файлы (VCards затем завертываются в файл VCalendar), потому что это единственный способ получить работу в более старых версиях iOS!

Используется тысячами людей! Проверьте это на GitHub