如何在应用程序 iphone 中添加 .vcf 文件作为附件

Posted

技术标签:

【中文标题】如何在应用程序 iphone 中添加 .vcf 文件作为附件【英文标题】:how to add .vcf file as attachment in application iphone 【发布时间】:2011-05-17 05:22:44 【问题描述】:

在我的应用程序中,我想在 MFMailComposeViewController 中添加 .vcf 文件作为附件。

【问题讨论】:

如何在 iphone 中为所有联系人制作一个 vcf 文件,请帮助我。 【参考方案1】:

documentation for MFMailComposeViewController 表明它的 addAttachmentData:mimeType:fileName: 实例方法是可行的方法:

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

附件是实际加载或转换成NSData的vcf文件。

vcf 的 mimeType@"text/x-vcard"

fileName 是您想调用的任何名称,但您应该使用 .vcf 扩展名以确保电子邮件程序能够理解它。

【讨论】:

如何在 iphone 中为所有联系人制作一个 vcf 文件,请帮助我。【参考方案2】:

使用下面的代码创建一个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);

【讨论】:

以上是关于如何在应用程序 iphone 中添加 .vcf 文件作为附件的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发- 生成/解析.vcf文件

如何将vcard通讯录导入苹果手机?

将 VCF 图像导出为 JPEG

使用bcftools 将vcf文件拆分成单个vcf

Android 如何发送多个联系人附加在单个 .vcf 文件中并发送到邮件?

如何从网站将 vCard(.vcf 文件)导入 Android 联系人