到目前为止,我一直在寻找,我不知道如何使用我的应用程序在设备之间共享联系人.
有任何想法吗?
解决方法 经过几个月的搜索,我终于找到了实现这一目标的方法.您可以使用此代码在UIActivityVIEwController中共享单个CNContact:
let contact: CNContact = /* your contact here */let fileManager = NSfileManager.defaultManager()let cacheDirectory = try! fileManager.URLForDirectory(NSSearchPathDirectory.CachesDirectory,inDomain: NSSearchPathDomainMask.UserDomainMask,appropriateForURL: nil,create: true)let fileLocation = cacheDirectory.URLByAppendingPathComponent("\(CNContactFormatter().stringFromContact(contact)!).vcf")let contactData = try! CNContactVCardSerialization.dataWithContacts([contact])contactData.writetofile(fileLocation.path!,atomically: true)let activityVC = UIActivityVIEwController(activityItems: [fileLocation],applicationActivitIEs: nil)presentVIEwController(activityVC,animated: true,completion: nil)
此代码将联系人转换为其NSData表示形式,将其保存到应用程序的缓存文件夹,并将该文件作为活动项共享.
如果要共享多个联系人,可以通过这种方式传递多个文件.
编辑:Swift 3.0版本
let contact: CNContact = /* your contact here */let fileManager = fileManager.defaultlet cacheDirectory = try! fileManager.url(for: .cachesDirectory,in: .userDomainMask,appropriateFor: nil,create: true)let fileLocation = cacheDirectory.appendingPathComponent("\(CNContactFormatter().string(from: contact)!).vcf")let contactData = try! CNContactVCardSerialization.data(with: [contact])do { try contactData.write(to: fileLocation.asURL(),options: .atomicWrite)} catch { ...}let activityVC = UIActivityVIEwController(activityItems: [fileLocation],applicationActivitIEs: nil)present(activityVC,completion: nil)总结
以上是内存溢出为你收集整理的ios – UIActivityViewController联系人分享?全部内容,希望文章能够帮你解决ios – UIActivityViewController联系人分享?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)