使用Facebook深度URL打开应用程序时,应用程序和网页都会打开

时间:2016-06-21 13:44:20

标签: javascript facebook anchor deep-linking

我将此作为我在网页中的链接。

<a class="btn btn-lg btn-orange"  role="button" onclick="myFunction()">like me</a>

这是我的剧本。

function myFunction() {
    $(function(){
        window.location = "fb://profile/1456471431314551";
        setTimeout(function () { window.location = "https://www.facebook.com/angelsatwork2015"; }, 25);
    })
    }

当我在移动设备上打开时,浏览器fb页面和fb应用程序都打开了。请帮助,以便如果应用程序打开,它不会重定向到fb浏览器页面。 此外,当我在桌面上使用此代码时,打开两个不同的浏览器页面。

1 个答案:

答案 0 :(得分:0)

这很可能是该代码的预期行为。

点击该按钮后您正在执行的操作会立即打开网址fb://profile/1456471431314551。假设这是iOS,这会导致系统显示警报,询问您是否要启动应用程序。但是,从iOS 9.2开始,此警报是非阻塞,这意味着其他代码将继续在后台执行。这就是为什么在25毫秒之后,您将网址https://www.facebook.com/angelsatwork2015作为常规网页打开。

不幸的是,在iOS 9.2+世界中没有好的解决方案(谢谢,Apple ......)。我们在Branch.io所做的是Universal Links(在安装应用程序时大部分时间启动应用程序)和重定向,例如您正在尝试使用Universal Links don&的边缘情况#39;工作。我们根据设备UUID设置跟踪cookie,以了解我们何时可以安全地尝试启动应用程序,但实际上,这通常意味着如果我们不确定,我们必须重定向到App Store,以避免您的行为#39;重新遇到。