Как добавить файл .vcf в качестве вложения в приложение iphone - PullRequest
6 голосов
/ 29 ноября 2010

В моем приложении я хочу добавить файл .vcf в качестве вложения в MFMailComposeViewController.

Ответы [ 2 ]

3 голосов
/ 03 июля 2013

Используйте приведенный ниже код, чтобы создать файл vcf и сохранить его в каталоге.

ABAddressBookRef addressBook = ABAddressBookCreate();

//-------------------Creating and saving vcf --------------------------------
CFArrayRef contacts = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFDataRef vcards = (CFDataRef)ABPersonCreateVCardRepresentationWithPeople(contacts);
NSString *vcardString = [[NSString alloc] initWithData:(NSData *)vcards encoding:NSUTF8StringEncoding];
NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *folderPath = [paths objectAtIndex:0];
NSString *filePath = [folderPath stringByAppendingPathComponent:@"contacts.vcf"];
[vcardString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSLog(@"Documents directory: %@",[fileMgr contentsOfDirectoryAtPath: folderPath error:&error]);
if (addressBook) {
    CFRelease(addressBook);
}
3 голосов
/ 29 ноября 2010

Документация для MFMailComposeViewController показывает, что его addAttachmentData: mimeType: fileName: метод экземпляра - это путь:

- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename

Приложение - это фактический vcf-файл, загруженный или преобразованный в NSData.

mimeType для vcf: @ "text / x-vcard" .

fileName - это то, что вы хотите назвать, хотя вы должны использовать расширение .vcf, чтобы почтовые программы его понимали.

...