Pregunta ¿Cómo agregar una "etiqueta personalizada" a la libreta de direcciones de iOS mediante programación?


Al agregar manualmente el teléfono / IMS de un contacto en la libreta de direcciones de iOS, puede agregar una etiqueta personalizada en lugar de "Inicio", "Trabajo", "Otro" * (en IMS).

¿Cómo crear "Etiqueta personalizada" en la libreta de direcciones mediante programación?


6
2018-04-20 14:11


origen


Respuestas:


Tuve exactamente la misma pregunta. No pude encontrar una respuesta, así que simplemente probé el método de conjetura y verificación. El siguiente código parece funcionar:

CFErrorRef error = NULL; 
ABAddressBookRef iPhoneAddressBook = ABAddressBookCreate();
ABRecordRef newPerson = ABPersonCreate();
ABRecordSetValue(newPerson, kABPersonFirstNameProperty, @"Jane", &error);
ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Smith", &error);

const CFStringRef customLabel = CFSTR( "mylabel" );

//phone
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiPhone, @"1-444-444-444", kABPersonPhoneMainLabel, NULL);
ABMultiValueAddValueAndLabel(multiPhone, @"1-333-333-333", kABPersonPhoneMobileLabel, NULL);            
ABMultiValueAddValueAndLabel(multiPhone, @"1-666-666-666", kABOtherLabel, NULL);        
ABMultiValueAddValueAndLabel(multiPhone, @"1-555-555-555", customLabel, NULL); 
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,nil);
CFRelease(multiPhone);

ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error);
ABAddressBookSave(iPhoneAddressBook, &error);

if (error != NULL)
{   
    NSLog(@"Error!");   
}

Si revisa la libreta de direcciones, verá un número de teléfono con una etiqueta personalizada: mylabel

Gracias a: esta publicación

Y para: este blog


11
2017-10-28 05:05