I'm trying to share a location through vCard like this:
var vCardString = [
"BEGIN:VCARD",
"VERSION:4.0",
"N:;Shared Location;;;",
"FN:Shared Location",
"item1.URL:http://maps.apple.com/?ll=\(coordinate.latitude),\(coordinate.longitude)",
"item1.X-ABLabel:map url",
"END:VCARD"
].joined(separator: "\n")
let myData = vCardString.data(using: .utf8)! as NSData
var items = [Any]()
let vCardActivity = NSItemProvider(item: myData!, typeIdentifier: kUTTypeVCard as String)
items.append(vCardActivity)
let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
present(activityViewController, animated:true, completion: nil)
This actually works but I cannot add a description below the vCard...
I've tried adding another item:
var items = [Any]()
let vCardActivity = NSItemProvider(item: myData!, typeIdentifier: kUTTypeVCard as String)
items.append(vCardActivity)
let myTitle = "This is my title"
items.append(myTitle)
let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
present(activityViewController, animated:true, completion: nil)
But it only shows the vCard
Thanks a lot
What if you add an address field to the VCard?
Like this:
let vCardString = [
"BEGIN:VCARD",
"VERSION:4.0",
"N:;Shared Location;;;",
"FN:Shared Location",
"ADR;TYPE=HOME;LABEL=42 Plantation St. Baytown, LA 30314 United States of America:;;42 Plantation St.;Baytown;LA;30314;United States of America",
"item1.URL:http://maps.apple.com/?ll=25.686613,-100.316116",
"item1.X-ABLabel:map url",
"END:VCARD"
].joined(separator: "\n")
You will get something like this: