2012-12-17 2 views
10

In iOS 5 e versioni successive, Apple ha introdotto il metodo ABPersonCreatePeopleInSourceWithVCardRepresentation, che è molto utile per alimentare una vCard nella Rubrica e recuperare gli ABRecordRef per le persone create.Formato vCard corretto per dispositivi iOS?

Tuttavia, la vCard di Apple sembra essere (almeno un po ') diversa da una vCard standard, come ho scoperto durante il tentativo di aggiungere vCard standard alla Rubrica. C'è una pagina da qualche parte che descrive come dovrebbe essere il formato Apple per una vCard?

Grazie!

+0

Quali file .vcf hanno avuto problemi per voi, ad esempio campi specifici, ecc.? L'unica cosa che ho trovato al momento è che la dimensione del file vCard dovrebbe essere inferiore a 256Kb. –

+1

@NickolayO. principalmente il campo 'PHOTO'. sembra che si aspetti una combinazione di formattazione tra vcard 2.1 e vcard 3.0. – Andrei

+0

È possibile allegare un file vcard di esempio? (PS. Doc dice: Rubrica supporta vCard versione 3.0.) –

risposta

7

I documenti ABPersonCreatePeopleInSourceWithVCardRepresentation indicano che vCard version 3 is the supported protocol. Sfortunatamente se hai problemi con una vCard standard non so come aiutarti - ho fatto un bel po 'di ricerche (la taglia è una buona motivazione: P) e non sono stata in grado di trovare ulteriori informazioni.

Non ho il mio iPhone su di me per testare, ma this guy sostiene di avere importato con successo il seguente, v2.1 vCard su un iPhone 4 utilizzando uno scanner QR app (che potrebbe essere utilizzando l'API in questione). The 3.0 spec is a superset of the 2.1 spec - puoi provare questa vCard e fammi sapere se funziona?

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 

Potete leggere il 3.0 spec ufficiale here e here.

Come ultima soluzione di fosso, ci sono plenty of vCard parsers out there - è un protocollo morto semplice. Potresti semplicemente prendere uno di questi (o scriverne uno tu stesso) e aggiungere manualmente il contatto alla Rubrica usando ABPersonCreatePeopleInSourceWithVCardRepresentation.

+0

Brillante. Sono molte buone informazioni Grazie. – Andrei

+0

@aaronsnoswell, sei a conoscenza di una documentazione Apple simile a vCard 4.0? – mac9416

1

Ho creato uno compatibile all'indietro VCard class, che genera i file .vcf. Ma per i dispositivi iOS < iOS 8, la classe esporta in file .ics (le VCard vengono quindi racchiuse in un file VCalendar) perché questo è l'unico modo per far funzionare le cose su versioni iOS precedenti!

Utilizzato da migliaia di persone! Dateci un'occhiata allo GitHub