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

时间:2015-07-22 20:15:15

标签: javascript ios browser deep-linking

我试图从浏览器深入链接到应用程序,这样做很好。 但问题是,iOS正在显示一个" Safari无法打开页面"然后重定向到应用商店(后备解决方案)。

是否可以制作一些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";

1 个答案:

答案 0 :(得分:7)

我在一段时间后遇到了类似的情况,我认为最好的方法是使用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及更高版本开始,使用通用链接本机支持深度链接。