是否可以将浏览器深层链接到应用程序? (没有弹出窗口)

Is it possible to browser deeplink to an app? (without popup)

我正在尝试从浏览器深层链接到应用程序,效果很好。 但问题是,iOS 显示 "Safari can't open the page",然后重定向到应用商店(后备解决方案)。

有没有可能做一些 JS 魔术,这样弹出框就不会出现了?

代码如下:

    var now = new Date().valueOf();
    setTimeout(function () {
        if (new Date().valueOf() - now > 100) return;
        window.location = "https://itunes.apple.com/us/app/twitter/id333903271?mt=8";
    }, 10);
    window.location = "twitter://timeline";

前段时间我遇到过类似的情况,我认为最好的方法是拥有一个 iframe 并为其提供一个源..

function mobileDeepLink() {
    var iframe = document.createElement('iframe');
    iframe.src = "twitter://timeline";

    // hide iframe visually
    iframe.width = 0;
    iframe.height = 0;
    iframe.frameBorder = 0;

    var now = new Date().valueOf();
    setTimeout(function () {
        if (new Date().valueOf() - now > 100) return;
        window.location = "https://itunes.apple.com/us/app/twitter/id333903271?mt=8";
    }, 10);

    // Append it to the body.
    document.body.appendChild(iframe);
    iframe.parentNode.removeChild(iframe);
}

mobileDeepLink();

这样您就不会在找不到方案时看到错误弹出窗口。

更新

此方法仅适用于 IOS 8 及更低版本。从 IOS 9 及更高版本开始,使用通用链接原生支持深度链接。