如何在应用程序 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 文件作为附件的主要内容,如果未能解决你的问题,请参考以下文章