Facebook App 链接(深层链接)不适用于移动浏览器

Facebook App links(Deep links) not working on mobile browsers

我 运行 遇到问题 link 使用 Facebook 分享应用程序。我的网页有以下元标记。我想要的是当用户将页面共享到 facebook 时,以及单击 post 时。它应该触发启动本机应用程序的意图。

奇怪的是,当我在移动设备 chrome/safari 上点击 facebook 分享时,它会忽略应用程序 link 并直接转到该网页。检查 facebook 的 html,a 标签 link 进入网页,但未提及应用程序 link。

但是,当我在 android 上使用 facebook 本机应用程序时,它会触发启动我的应用程序的意图。也就是说,ios 上的 Facebook 本机应用程序无法正常工作(转到网页)。

应用 link 在 facebook open graph inspector 上显示正常。它似乎总是使用我的 og:url(我尝试使用如下的 if 语句来不呈现标签,但它仍然以某种方式推断出 url)。

我的问题是为什么手机上的 facebook 网页使用网页 url 而不是应用程序 link。有没有办法做到这一点 ?

<% if @app_links%>
  <meta property="al:ios:url" content="<%= @app_links[:deep_link] %>" />
  <meta property="al:ios:app_store_id" content="<%= @app_links[:ios][:app_store_id] %>" />
  <meta property="al:ios:app_name" content="<%= @app_links[:app_name] %>" />
  <meta property="al:android:url" content="<%= @app_links[:deep_link] %>">
  <meta property="al:android:package" content="<%= @app_links[:android][:package] %>">
  <meta property="al:android:app_name" content="<%= @creation_og_deep_link[:app_name] %>">

  <!--fallback-->
  <meta property="al:web:should_fallback" content="false" />
<% else %>
   <meta property="og:url" content="<%= page_url %>"/>
<% end %>

这是预期的行为

无法在网站上下文中实现应用链接行为。为了正确处理 app not installed 情况并回退到 App/Play Store 或指定网页,所有 current implementations 都在第三方应用程序中。换句话说,即使 Facebook 想要使用来自其移动网站的 App Links 数据重定向到应用程序,他们也无法顺利完成,因为 none 的主要移动网络浏览器应用程序(Safari,Chrome, 等) 已经实施了 App Links 标准,但不太可能这样做。

正如您所指出的,Android 上的原生 Facebook 仍然正确地实现了应用程序链接。但是,iOS 上的本机应用程序已经有一段时间没有这样做了,这是一个 known issue,Facebook 基本上将其注销为 wontfix。不幸的是,他们没有对这一变化更加透明,因为对此有很多困惑。

但你可以解决它

Branch.io 这样的服务(完全披露:我在团队中)通过实施应用链接、URI 方案和 iOS 通用链接的明智组合来解决这个问题。如果您只想 post 一个 link 在安装时进入您的应用程序,否则会转到网页(或 App/Play 商店),那么 Branch links 绝对是您最简单的解决方案。

分支link路由逻辑