我试图从我的应用程序打开Telegram,以便用户与我制作的机器人交谈。到目前为止,它正在工作,但我发现打开机器人聊天的唯一方法是使用https://telegram.me/MyBot网址。但是这样,它打开Safari,然后询问用户是否要在Telegram应用程序上打开它。最初它要求一次,然后,在第一次之后,它只是通过safari并自动打开Telegram。但它停止了,现在,每次加载Safari时,有时甚至都没有显示弹出窗口,询问用户是否可以打开Telegram应用程序。
有没有办法使用它' tg://' url(应该直接打开Telegram应用程序)打开与bot的聊天?只看到电话号码的工作示例。以不同的方式尝试但完全没有成功......
任何帮助都会很棒。
提前致谢!
答案 0 :(得分:12)
Swift 3.0.1
这正是您所寻找的:
let botURL = URL.init(string: "tg://resolve?domain=MyBot")
if UIApplication.shared.canOpenURL(botURL!) {
UIApplication.shared.openURL(botURL!)
} else {
// Telegram is not installed.
}
不要忘记将电报的URI架构添加到info.plist:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tg</string>
</array>
答案 1 :(得分:1)
为开放电报编写此代码
let url = URL(string: "instagram://user?username=fastteb")
if(UIApplication.shared.canOpenURL(url!))
{
UIApplication.shared.open(url!, options: [:], completionHandler: nil)
}else
{
let alert = UIAlertController(title: "Error", message: "you don't have instagram,you need to install instagram", preferredStyle: .alert)
let action = UIAlertAction(title: "Download And Install", style: .default, handler: { (UIAlertAction) in
let urlAppStore = URL(string: "itms-apps://itunes.apple.com/app/id389801252")
if(UIApplication.shared.canOpenURL(urlAppStore!))
{
UIApplication.shared.open(urlAppStore!, options: [:], completionHandler: nil)
}
})
let actionCancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alert.addAction(action)
alert.addAction(actionCancel)
self.present(alert, animated: true, completion: nil)
}
答案 2 :(得分:1)
对于Swift 4.2和iOS 9 +
let screenName = "und3rflow"
let appURL = NSURL(string: "tg://resolve?domain=\(screenName)")!
let webURL = NSURL(string: "https://t.me/\(screenName)")!
if UIApplication.shared.canOpenURL(appURL as URL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(appURL as URL, options: [:], completionHandler: nil)
}
else {
UIApplication.shared.openURL(appURL as URL)
}
}
else {
//redirect to safari because the user doesn't have Telegram
if #available(iOS 10.0, *) {
UIApplication.shared.open(webURL as URL, options: [:], completionHandler: nil)
}
else {
UIApplication.shared.openURL(webURL as URL)
}
}
答案 3 :(得分:0)
您可以通过链接打开tg
let botURL = URL.init(string: "https://t.me/\("bot_or_user_name")")
if UIApplication.shared.canOpenURL(botURL!) {
UIApplication.shared.openURL(botURL!)
} else {
let urlAppStore = URL(string: "itms-apps://itunes.apple.com/app/id686449807")
if(UIApplication.shared.canOpenURL(urlAppStore!))
{
if #available(iOS 10.0, *) {
UIApplication.shared.open(urlAppStore!, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(urlAppStore!)
}
}
}