使用 UIActivityViewController 选择哪些共享操作获取哪些内容
Choose what share actions get what content with UIActivityViewController
我目前正在使用 UIActivityViewController 与其他应用共享 url。这部分工作正常。
但是当我分享到 iMessage、Whatsapp 或 Mail 等应用程序时。我想添加一个字符串。
示例:
Sharing -> airdrop: https://www.google.com
Sharing -> iMessage: "Hi there, checkout this cool website: https://www.google.com"
我尝试通过将 Url 对象和字符串添加到 UIActivityViewController 中来实现,如下所示:
let url = URL(string: "https://www.google.com)
let text = "Hi there, checkout this cool website: \(url)"
let items: [Any] = [url, text]
let controller = UIActivityViewController(
activityItems: items,
applicationActivities: nil)
DispatchQueue.main.async{self.present(controller, animated: true, completion: nil)}
^不是实际代码,但足以画图
这确实适用于 Airdrop,它会打开 url。
它也适用于 Mail,它使用包含 url.
的字符串
但在 iMessage 中不起作用。 iMessage 将两者结合起来,像这样:
https://www.google.com Hi there, checkout this cool website: https://www.google.com
有没有人对我保留 Airdrop/Mail 等的功能有任何建议,但它也适用于 iMessage?
使用 UIActivityItemSource。 UIActivityItemSource 被告知请求进程的标识符,因此您可以避免将 URL 传递给 Messages 而只传递字符串,这就足够了。
我目前正在使用 UIActivityViewController 与其他应用共享 url。这部分工作正常。
但是当我分享到 iMessage、Whatsapp 或 Mail 等应用程序时。我想添加一个字符串。
示例:
Sharing -> airdrop: https://www.google.com
Sharing -> iMessage: "Hi there, checkout this cool website: https://www.google.com"
我尝试通过将 Url 对象和字符串添加到 UIActivityViewController 中来实现,如下所示:
let url = URL(string: "https://www.google.com)
let text = "Hi there, checkout this cool website: \(url)"
let items: [Any] = [url, text]
let controller = UIActivityViewController(
activityItems: items,
applicationActivities: nil)
DispatchQueue.main.async{self.present(controller, animated: true, completion: nil)}
^不是实际代码,但足以画图
这确实适用于 Airdrop,它会打开 url。
它也适用于 Mail,它使用包含 url.
但在 iMessage 中不起作用。 iMessage 将两者结合起来,像这样:
https://www.google.com Hi there, checkout this cool website: https://www.google.com
有没有人对我保留 Airdrop/Mail 等的功能有任何建议,但它也适用于 iMessage?
使用 UIActivityItemSource。 UIActivityItemSource 被告知请求进程的标识符,因此您可以避免将 URL 传递给 Messages 而只传递字符串,这就足够了。