与Facebook深度链接

时间:2017-07-17 09:20:25

标签: facebook deep-linking

在我的iphone应用程序中,我有一个重新发送到facebook的帖子。当我从Facebook点击相同的帖子时,主机应用程序应该出现。当我在这里搜索https://developers.facebook.com/docs/applinks/ios时,它需要在我的文件中添加一些元数据。所以我做到了。

<meta property="al:ios:url" content="schemename://" />
<meta property="al:ios:app_store_id" content="app store id" />
<meta property="al:ios:app_name" content="Example App" />
<!-- Other headers -->

但它既没有打开我的应用程序也没有重定向到iTunes。 请建议我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

这是2017年的预期行为。

您正在使用al:ios:url标记应该执行此操作。不幸的是,该功能在iOS上已经被打破了一年多,并且它是known issue Facebook基本上以wontfix注销。

如果al:web:should_fallback设置为false,Facebook现在只会在iOS上进行深层链接。这意味着,如果您的应用未安装,即使您已指定al:web:url,用户始终也会被带到App Store页面而不是您自己的网站。大多数精明品牌不希望新用户的第一次体验是应用程序或Play商店页面,他们也不愿意牺牲归因数据。因此,al:web:should_fallback现在几乎普遍设置为false,这意味着目前没有可行的方法直接从iOS Facebook应用中的新闻源启动第三方应用。

Android Facebook应用程序中的东西仍能正常运行,但显然这可能随时发生变化。不幸的是,Facebook对iOS版本的更改并不透明,因为它存在很多混乱。

您可以详细了解此问题背后的详细信息here

但是有一种解决方法。

Branch.io等服务(完全披露:我在团队中)通过实施App Links,URI方案和iOS Universal Links的明智组合来解决这个问题。基本上你需要做的是在webview中打开一个页面,然后有一个按钮或其他用户驱动的CTA事件,从那里启动应用程序。这对用户来说是一个额外的步骤,但目前是最好的解决方法。如果您只是希望能够在安装时发布进入应用程序的链接,或者转到网页(或应用程序/ Play商店),那么分支链接绝对是您最简单的解决方案。

分支链接路由逻辑

Branch link routing logic

答案 1 :(得分:0)

此外还有另一项工作。我通过逆向工程发现了Spotify如何管理深层链接。要查看此内容 - 在Feed上分享Spotify播放列表。 Facebook iOS应用程序将从共享播放列表直接启动到Spotify iOS应用程序。

长话短说 - Facebook已经为Spotify启用了此功能。如果您将此元标记放在:

<meta property="fb:app_id" content="174829003346">

然后您的深层链接将神奇地工作(这是Spotify Facebook应用程序ID)。我仍然试图确定这是因为配置错误还是我们正在考虑潜在的反托拉斯案例。

顺便说一下 - 这不是一个可行的解决方案。如果未安装您的应用程序(以及URL方案),Spotify应用程序将在其位置打开。然而,这是非常有趣的行为。