【问题标题】:Choose what share actions get what content with UIActivityViewController使用 UIActivityViewController 选择哪些共享操作获取哪些内容
【发布时间】:2019-02-22 13:11:52
【问题描述】:

我目前正在使用 UIActivityViewController 将 url 共享给其他应用程序。这部分工作正常。

但是当我分享到 iMessage、Whatsapp 或 Mail 等应用时。我想添加一个字符串。

例子:

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

分享 -> iMessage:“嗨,看看这个很酷的网站:https://www.google.com

我尝试通过将 Url 对象和 String 添加到 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你好,看看这个很酷的网站:https://www.google.com

有没有人建议我保留 Airdrop/Mail 等的功能。但它也可以在 iMessage 上运行?

【问题讨论】:

    标签: ios swift uiactivityviewcontroller


    【解决方案1】:

    使用 UIActivityItemSource。 UIActivityItemSource 被告知请求进程的标识符,因此您可以避免将 URL 交给 Messages,而只将字符串交给它,这就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2011-07-16
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多