gpt4 book ai didi

ios - 如何在 Swift 3 中将位置从我的应用程序共享到 WhatsApp

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:43 25 4
gpt4 key购买 nike

我正在尝试将位置从我的 iOS 应用程序共享到 WhatsApp,我希望它看起来像这样:

enter image description here

我正在做的是使用此代码发送 vCard:

 func vCardURL(from coordinate: CLLocationCoordinate2D, with name: String?) -> URL {
let vCardFileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("Shared Location.loc.vcf")

let vCardString = [
"BEGIN:VCARD",
"VERSION:3.0",
//"PRODID:-//Apple Inc.//iPhone OS 10.3.2//EN",
"N:;My Location;;;",
"FN:My Location",
"item1.URL;type=pref:https://maps.apple.com/?ll=50.359890\\,12.934560&q=My%20Location&t=m",
"item1.X-ABLabel:map url",
"END:VCARD"
].joined(separator: "\n")

do {
try vCardString.write(toFile: vCardFileURL.path, atomically: true, encoding: .utf8)
} catch let error {
print("Error, \(error.localizedDescription), saving vCard: \(vCardString) to file path: \(vCardFileURL.path).")
}

print(vCardString)

return vCardFileURL
} // end of function

//调用上面的方法

let vURL = LocationVCard.vCardURL(from: self.newLocation.coordinate, with: "Berlin")

let activityViewController = UIActivityViewController(activityItems: [vURL], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)

但我总是以这种风格结束,而不是我想要的: enter image description here

最佳答案

无需将 vCard 字符串保存到文件中,只需将其转换为 Data 并用具有正确类型标识符的 NSItemProvider 包装它 public.vcard,它会工作得很好:

let data = vCardString.data(using: .utf8)! as NSData
let item = NSItemProvider(item: data, typeIdentifier: "public.vcard")
let activityViewController = UIActivityViewController(activityItems: [item], applicationActivities: nil)

关于ios - 如何在 Swift 3 中将位置从我的应用程序共享到 WhatsApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com