通过URL方案共享链接(例如通过电报)

时间:2015-07-11 10:47:47

标签: ios swift url-scheme

我想通过URL方案分享一个链接,比如电报。

我创造了这个:

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

链接,打开电报,但没有其他事情发生。

我在Viber上使用了相同的代码,它可以工作:

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

并使用此文本在viber中打开一条新消息:

www.example.com

换句话说,它会削减我的网址。

任何想法?

11 个答案:

答案 0 :(得分:27)

如果设备上没有安装电报应用,您还可以使用telegram.me共享链接,该链接可以回退到网页。

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

答案 1 :(得分:10)

这对我有用:

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

答案 2 :(得分:5)

您可以使用链接telegram.me,该链接将为预览页提供警告,要求您在应用程序中打开该链接。

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

enter image description here

第二个选项是直接调用应用程序链接:

tg://msg_url?url=<url>&text=<encoded-text>

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

答案 3 :(得分:4)

对于电报分享:

目标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 :(得分:1)

这里有各种各样的答案,每个答案都以自己的方式运作。使用tg:而非http:作为协议的IE更短,但如果未安装Telegramme.me则会导致错误,而使用完整的http:网址会重定向到Telegramme.me的安装说明链接。

如果您想查看有关如何处理此问题的所有选项,请查看此社交共享github项目:

https://github.com/bradvin/social-share-urls#telegramme

答案 5 :(得分:1)

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

有了这个,我们可以打开电报的 xdg,如果我们选择 contact ,默认情况下发送的文本将出现在消息字段中。

答案 6 :(得分:0)

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>



或者很简单:

tg://msg?text=www.example.com%2F%3Fget%3Dvalue

tg://msg?text=www.example.com%2F%3Ft%3D12

答案 7 :(得分:0)

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

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

iOS检查是否安装了任何可以处理tg://方案的应用程序,即Telegram。

答案 8 :(得分:0)

尝试使用 tg://分享

<a href="tg://share?url=www.example.com?t=12&text=Check out this url">Link</a>

答案 9 :(得分:0)

经过测试,这样可以在未安装的情况下打开电报应用程序或浏览器:

let webURL = NSURL(string: "https://t.me/<YOUR ID>")!
UIApplication.shared.open(webURL as URL)

答案 10 :(得分:0)

也许您使用本地主机,所以它不显示共享。在直播主持人中尝试