我有一个(对我来说)大问题。我想将带有空投的 vcf 文件从我自己的应用程序发送到另一台 iOS 设备。我有一个 NSData 对象,我应该将其转换为 vcf 文件,并且我应该将它与空投一起发送到另一个 IOS 设备。
NSData 对象工作正常,我可以通过电子邮件发送一个 vcc 文件,但是通过空投我离开了我的限制。我尝试了在论坛和 developer.apple.com 上找到的所有内容。但是没有任何效果,我认为原因是,我不知道如何开始解决问题。有谁知道我怎么能实现它?
谢谢
我相信这大致是您正在寻找的:
NSString *contactName = nil; // name of person in vcard
NSData *vcfData = nil; // vcard data
NSURL *fileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.vcf", contactName]]];
NSError *writeError;
if ([vcfData writeToURL:fileURL options:NSDataWritingAtomic error:&writeError]) {
NSArray *activityItems = @[fileURL];
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];
} else {
// failed, handle errors
}
如果您仍想支持为某些活动提供 NSData,则必须创建一些符合UIActivityItemSource协议的对象,并让其中一些在适当的情况下返回 nil(有关详细信息,请参阅此SO )。您可能会发现 Apple 的AirDrop 示例代码项目也很有帮助。