选择哪些共享操作可通过UIActivityViewController获得哪些内容

时间:2019-02-22 13:11:52

标签: ios swift uiactivityviewcontroller

我当前正在使用UIActivityViewController来与其他应用共享网址。这部分工作正常。

但是当我与iMessage,Whatsapp或Mail之类的应用共享时。我想添加一个字符串。

示例:

  

共享->空投:https://www.google.com

     

共享-> iMessage:“您好,请访问此炫酷网站:https://www.google.com

我试图通过向UIActivityViewController中添加Url对象和String来做到这一点,

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你好,请访问这个很酷的网站:https://www.google.com

有人对我有保留空投/邮件等功能的建议吗?但是它也可以在iMessage上使用?

1 个答案:

答案 0 :(得分:1)

使用UIActivityItemSource。 UIActivityItemSource被告知请求过程的标识符,因此您可以避免将URL传递给Messages,而仅将其传递给字符串就足够了。