Javascript 检查mobile Safari是否可以处理特定协议

Javascript 检查mobile Safari是否可以处理特定协议,javascript,ios,mobile-safari,Javascript,Ios,Mobile Safari,我找了很多,但都找不到答案。我需要在MobileSafari上检查是否可以处理某个协议(这样才能确定设备上是否安装了某个应用程序) 这是可以做到的。如果你打开手机推特(并且你已经安装了该应用程序),它会显示一个指向该应用程序的按钮。 Instagram也是一样:如果你在浏览器上打开一张照片,并且你有了应用程序,它会显示一个按钮“在应用程序中打开”,否则会显示一个链接“免费下载Instagram!”(这与智能横幅不同) 有人知道这是怎么做到的吗 谢谢。试试这样: (function () {

我找了很多,但都找不到答案。我需要在MobileSafari上检查是否可以处理某个协议(这样才能确定设备上是否安装了某个应用程序)

这是可以做到的。如果你打开手机推特(并且你已经安装了该应用程序),它会显示一个指向该应用程序的按钮。 Instagram也是一样:如果你在浏览器上打开一张照片,并且你有了应用程序,它会显示一个按钮“在应用程序中打开”,否则会显示一个链接“免费下载Instagram!”(这与智能横幅不同)

有人知道这是怎么做到的吗


谢谢。

试试这样:

(function () {
    setTimeout(function () {
        console.log('protocol is not available')
        window.location = 'http://somewhere-else';
    }, 1000);

    window.open('your_protocol://', '_self');
}())

这里还讨论了许多其他方法:

当一个问题被标记为重复以链接到所谓的原始问题时,这将非常有帮助。在现代的iOS上,它会弹出一个带有问题的对话框,因此超时时间应该大于1000,以便用户有时间回答。