有一段时间我不得不处理AddressBook框架了。
当将UIActivityViewController.activityItems
设置为vCard时,我想知道是否有一种方法可以免费获得“Addressbook”功能,比如:
let vCardString = [
"BEGIN:VCARD",
"VERSION:3.0",
"N:Gump;Forrest",
"FN:Forrest Gump",
"ORG:Bubba Gump Shrimp Co.",
"TEL;TYPE=WORK,VOICE:(111) 555-1212",
"END:VCARD"
].joinWithSeparator("\n")
let vCardData = vCardString.dataUsingEncoding(NSUTF8StringEncoding)!
let vCardActivity = NSItemProvider(item: vCardData, typeIdentifier: kUTTypeVCard as String)
// URL, test,
let activityViewController = UIActivityViewController(activityItems: [vCardActivity], applicationActivities: activities)
我想绕开漫长的道路,特别是在支持iOS 8和9时:使用AddressBook和Contact框架,我将创建一个person,请求权限,并呈现视图控制器。
如果我“只是”想提供一种通过UIActivityViewController
添加或共享联系人的方法,是否有更短的方法?
编辑:上面的代码不起作用,说到系统的联系人没有相应的iOS
活动。Evernote使用并显示一个具有正确名称的活动。当添加到evernote中时,vCard将显示在带有正确细节的便笺中。
发布于 2016-08-18 01:37:30
您可以尝试使用UIDocumentInteractionController
代替。就像
NSURL * url = [NSURL fileURLWithPath:"file://my.vcard"];
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:url];
[controller presentOpenInMenuFromRect:CGRectMake(0, 0, 300, 300) inView:self.view animated:YES];
这将可以选择“复制到联系人”。
https://stackoverflow.com/questions/36398644
复制相似问题