在 iOS 应用程序 (Swift) 中通过电报分享消息
Share a message with telegram within iOS app (Swift)
我正在使用 swift 开发一个 iOS 应用程序,我需要在按下按钮时与电报应用程序共享一条消息。我希望用户选择 he/she 想要与之共享消息的联系人。
我试过 "tg://msg?text=" 架构,但它只打开电报而不是共享页面来选择联系人。
有人知道这样做的方法吗?
提前感谢您的帮助!
答案:
正如@Cesare 指出的那样,tg://msg?text=test URL 已被电报禁用,因此我们需要一个特定的 phone 号码来共享消息。
Telegram 禁用了 tg://msg?text=test
URI。 You can only send direct messages to pre-chosen users or contacts.
因此您可能希望提供标准联系人列表,然后向该 phone 号码发送消息(假设他们有 Telegram)。
当然,如果您使用 UIActivityController
应该可以。
@objc func didSelectShareRow() {
let text = "Hello"
let textShare = [text]
let activityViewController = UIActivityViewController(activityItems: textShare , applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
self.present(activityViewController, animated: true, completion: nil)
}
另一种解决方案是使用类似我的 LNExtensionExecutor
的方法,它允许您绕过 UIActivityViewController
并执行标准 Telegram(或任何其他)共享扩展,提供文本 and/or 图像作为输入项。
我正在使用 swift 开发一个 iOS 应用程序,我需要在按下按钮时与电报应用程序共享一条消息。我希望用户选择 he/she 想要与之共享消息的联系人。
我试过 "tg://msg?text=" 架构,但它只打开电报而不是共享页面来选择联系人。
有人知道这样做的方法吗?
提前感谢您的帮助!
答案:
正如@Cesare 指出的那样,tg://msg?text=test URL 已被电报禁用,因此我们需要一个特定的 phone 号码来共享消息。
Telegram 禁用了 tg://msg?text=test
URI。 You can only send direct messages to pre-chosen users or contacts.
因此您可能希望提供标准联系人列表,然后向该 phone 号码发送消息(假设他们有 Telegram)。
当然,如果您使用 UIActivityController
应该可以。
@objc func didSelectShareRow() {
let text = "Hello"
let textShare = [text]
let activityViewController = UIActivityViewController(activityItems: textShare , applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
self.present(activityViewController, animated: true, completion: nil)
}
另一种解决方案是使用类似我的 LNExtensionExecutor
的方法,它允许您绕过 UIActivityViewController
并执行标准 Telegram(或任何其他)共享扩展,提供文本 and/or 图像作为输入项。