通过URL方案向Telegram共享链接

45

我希望通过URL方案分享一个Telegram链接。

我已经创建了以下内容:

tg://msg?text = www.example.com?t=12

这个链接会打开Telegram,但是没有其他反应。

我之前用同样的代码在Viber上测试过,可以正常使用:

viber://forward?text = www.example.com?t=12

它会在Viber中打开一条新消息,并包含以下文本:

www.example.com

换句话说,它会截断我的URL。

有什么想法吗?

14个回答

74

你也可以使用telegram.me分享链接,如果设备上未安装telegram应用程序,则可以回退到webogram。

https://telegram.me/share/url?url=<URL>&text=<TEXT>


3
我们能否打开 Telegram 并开始与所选的机器人聊天(而不是输入号码)?例如 tg://msg?text=你好&to=@my_bot 这样的链接。 - Qadir Hussain
@Qadir Hussain,你找到解决方案了吗?我已经将联系人添加到手机通讯录中,使用tg://msg?text=hi&to=+91XX,然后iOS会重定向到用户聊天界面,但在Android上该怎么做呢? - Maulik patel
@Maulikpatel 这个链接对于 Android 应该有所帮助:https://dev59.com/6GEi5IYBdhLWcg3wHJAR - Qadir Hussain
@QadirHussain,它会将我重定向到Telegram,但不是特定用户的聊天屏幕。 - Maulik patel
@Maulikpatel 不知道这在安卓中是怎么样的。 - Qadir Hussain

18

这个对我有效:

tg://msg?text=Mi_mensaje&to=+1555999

如何在Swift中检查是否安装了Telegram? - Qadir Hussain
1
我们能否打开 Telegram 并选择机器人开始聊天(不是数字),例如: tg://msg?text=Mi_mensaje&to=@my_bot - Qadir Hussain
@QadirHussain,要打开 Telegram 并开始与机器人聊天,请使用类似“https://telegram.me/my_bot”的 URL。它会将您重定向到与该机器人的聊天屏幕。 - Hos Ap
<a href = "tg://msg?text=Mi_mensaje&to=+1555999"><telegram</a> 这将打开“xdg”,然后我们应该选择联系人。是否有打开“xdg”并选择联系人并发送消息的解决方案?提前致谢。 - gowthami
我有一个userId(不是用户名),例如854845663。我该如何使用它来代替用户名? - Mo Farhand

16

6
你可以使用链接telegram.me,它将提供一个预览页面,并提示打开应用程序的警告。
https://telegram.me/share/url?url=<URL>&text=<TEXT>

enter image description here

第二个选项是直接调用应用程序链接:
tg://msg_url?url=<url>&text=<encoded-text>

我特别喜欢第二个选项,它也适用于桌面应用程序。

5

Telegram分享:

Objective C:

if([UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tg://msg?text=test"]){
 [UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tg://msg?text=test"]
}else{
 //App not installed.
}

Swift 3.0:

let urlString = "tg://msg?text=test"
let tgUrl = URL.init(string:urlString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!)
if UIApplication.shared.canOpenURL(tgUrl!)
    {
        UIApplication.shared.openURL(tgUrl!)
    }else
    {
       //App not installed.
    }

如果您使用了canOpenURL,则需要在info.plist中添加。
<key>LSApplicationQueriesSchemes</key>
<array>
   <string>tg</string>
</array>

4
<a href = "https://telegram.me/share/url?url=<URL>&text=<TEXT>">Telegram</a>

使用此方法,我们可以打开Telegram的xdg,如果选择联系人,则默认发送的文本将出现在消息字段中。


3

PHP

<a href="tg://msg?text=<?php echo rawurlencode($gotoURL); ?>">Link</a>


JavaScript

<script>TEXT="any text or url";</script>

<a onclick="window.location='tg://msg?text='+encodeURIComponent(TEXT);">Link</a>

1
也许您正在使用本地主机,因此未显示共享。请尝试在实际主机上运行。

1
您应该停止使用桌面应用程序的协议,因为它在不断发展的网络上无法工作:它无法在Web应用程序、ChromeOS或某些移动设备上运行。

始终使用新方法:https://t.me,因为它将在Windows\Linux\Mac中打开Telegram DESKTOP应用程序,如果用户想要或拥有它,否则它将打开WEB页面\Web应用程序,这是正确的方式。

  1. https://web.telegram.org/k
  2. https://web.telegram.org/z

Telegram有两个Web应用程序,已经建立了一年的时间!

两者都很棒,增加了大量的平等性,并采用了不同的方法。


0

要检查Telegram是否已安装,您可以执行以下操作(借用自ShareKit的Whatsapp共享模块):

BOOL isTelegramInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tg://msg?text=test"]];

iOS会检查是否安装了可以处理tg://协议的应用程序,这个协议是Telegram使用的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接