web-dev-qa-db-ja.com

URLスキームを介してリンクを共有します(たとえば、Telegramを介して)

URLスキームを介してリンクを共有したいと思います。

私はこれを作成しました:

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

リンクは、電報を開きますが、他には何も起こりません。

Viberにも同じコードを使用しましたが、動作します:

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

次のテキストを含む新しいメッセージをviberで開きます。

www.example.com

他のWordでは、それは私のURLをカットします。

何か案が?

15
farhad1985

テレグラムアプリがデバイスにインストールされていない場合、webogramにフォールバックするtelegram.me共有リンクを使用することもできます。

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

31
Mohebifar

これは私と一緒に動作します:

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

テレグラム共有の場合:

目標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

ここにはさまざまな答えがあり、それぞれが独自の方法で機能しています。つまり、tg: の代わりに http:はプロトコルとして短くなりますが、Telegramme.meがインストールされていない場合はエラーが発生しますが、完全なhttp: urlは、Telegramme.meのインストール手順を含むリンクにリダイレクトします。

これがどのように処理されるかのすべてのオプションを見たい場合は、このソーシャル共有githubプロジェクトをチェックしてください:

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

1
HoldOffHunger

テストしたところ、この方法では、インストールされていない場合にテレグラムアプリまたはブラウザーを開くことができます。

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

tg:// shareを使用してみてください:

<a href="tg://share?url=www.example.com?t=12&text=Check out this url">Link</a>
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
0
Samad

Telegramがインストールされているかどうかを確認するには、次の操作を実行できます(ShareKitのWhatsapp共有モジュールから借用)。

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

iOSは、tg://スキーム(Telegram)を処理できるアプリがインストールされているかどうかを確認します。

0
f0xik