【问题标题】:Share a message with telegram within iOS app (Swift)在 iOS 应用程序 (Swift) 中与电报共享消息
【发布时间】:2022-01-18 23:55:26
【问题描述】:

我正在使用 swift 开发 iOS 应用程序,当按下按钮时,我需要与电报应用程序共享一条消息。我希望用户选择他/她想与哪个联系人分享消息。

我尝试了“tg://msg?text=”模式,但它只打开电报而不是共享页面来选择联系人。

有人知道这样做的方法吗?

提前感谢您的帮助!

答案:

正如@Cesare 指出的那样,tg://msg?text=test URL 已被电报禁用,因此我们需要一个特定的电话号码来分享消息。

【问题讨论】:

    标签: ios swift share telegram


    【解决方案1】:

    另一种解决方案是使用像我的LNExtensionExecutor 这样的东西,它允许您绕过UIActivityViewController 并执行标准的电报(或任何其他)共享扩展,提供文本和/或图像作为输入项。

    【讨论】:

    • 伟大的贡献,但是您应该在回答中清楚地提及 Private apis 的用法。
    • @Husam 我认为情况很明确,因为 Apple 没有提供任何替代 UIActivityViewController 的选项。
    【解决方案2】:

    Telegram 禁用了 tg://msg?text=test URI。 You can only send direct messages to pre-chosen users or contacts.

    因此,您可能需要提供标准联系人列表,然后向该电话号码发送消息(假设他们有 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)
    }
    

    【讨论】:

    • 感谢您的帮助。我不知道 tg://msg?text=test URL 已被禁用。我认为最好删除电报按钮并使用共享按钮,然后显示 UIActivityViewController。
    • 所以无法分享到特定的社交网络?我总是应该打开 UIActivityViewController?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多