使用 facebook deep URL 打开应用时,应用和网页同时打开

Posted

技术标签:

【中文标题】使用 facebook deep URL 打开应用时,应用和网页同时打开【英文标题】:When using facebook deep URL to open app, both app and webpage open together 【发布时间】:2016-06-21 13:44:20 【问题描述】:

我将其用作网页中的链接。

<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】:

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

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

不幸的是,在 iOS 9.2+ 世界中没有很好的解决方案(感谢 Apple...)。我们在Branch.io 所做的是结合通用链接(在安装应用程序时启动应用程序......大多数情况下)和重定向,例如您在通用链接不起作用的边缘情况下尝试的重定向。我们根据设备 UUID 设置跟踪 cookie,以了解我们何时可以安全地尝试启动应用程序,但实际上,这通常意味着如果我们不确定,我们必须重定向到 App Store,以避免您的行为相遇。

【讨论】:

以上是关于使用 facebook deep URL 打开应用时,应用和网页同时打开的主要内容,如果未能解决你的问题,请参考以下文章

假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url

Ionic 3 Deep链接打开任何链接问题

如何制作在 Safari for iOS Facebook Messenger 应用程序而不是应用程序内 Web 浏览器中打开的 URL

在 UIWebView 中打开 facebook 页面墙的 URL 不起作用

Flutter 在 facebook 应用程序 android 和 ios 中打开 facebook 链接

从 facebook 重定向到 ios 应用程序 - 深层链接