【问题标题】:Dynamic links in Facebook mobile app is not deep linked to appFacebook 移动应用中的动态链接与应用没有深度链接
【发布时间】:2016-05-27 15:28:24
【问题描述】:

问题 - 在 Facebook Mobile 上打开 Firebase 动态链接时,Facebook 浏览器会使用深层链接,并且无法打开预期的移动应用

问题Firebase 中是否有很好的解决方法来帮助 Facebook 兑现按预期呈现我的动态链接的承诺?

我们知道http://applinks.org,并且 Facebook 是贡献者。 Firebase 是否有办法使用 AppLinks 规范配置他们的服务器,以便 Facebook 将通过深层链接传递到我们的应用而不是使用它?

背景 — 我为 iOS 和 Android 应用创建了 Firebase Dynamic Link

动态链接提供了我所期望的一切,是一种奇妙的体验。

  1. 在 iOS 上打开时,会导航到应用程序。如果没有安装,它会去 应用商店
  2. 在 Android 上打开时,会导航到应用程序。如果未安装,请转到 Play 商店
  3. 在非移动设备上打开时,会导航到我们的网站
  4. 在 Facebook 手机上,1 和 2 都不会发生。结果是它直接进入了移动网络体验,从而消除了 Firebase 动态链接的承诺

【问题讨论】:

  • 尝试在 facebook 应用下启用“外部链接打开”选项。应用程序设置 -> 链接从外部打开。默认情况下禁用此选项,并导致链接由 facebook 应用程序在内部处理。启用此选项后,应用链接将按预期工作。我不明白为什么 FB 试图变得过于聪明!
  • @trivalent 不错,但我如何强制用户设置此设置?这是解决方案,但不能大规模使用
  • @VizGhar 看看我的回答我们是如何解决问题的。
  • 我在这个问题下写了详细的解决文档:stackoverflow.com/questions/46266797/…

标签: firebase firebase-dynamic-links


【解决方案1】:

为了避免这种情况,我们制作了一个重定向到 Firebase 动态链接的网页。 有了这个解决方案,我们可以:

  1. 使用我们的域,而不是 Firebase 网址。
  2. 确保 Firebase 链接在任何情况下都能正常工作,例如当它从自定义浏览器(fb、三星)打开时。

这样做的缺点是您总是需要通过带有重定向的网页。

【讨论】:

  • Firebase URL 是您需要解决此问题的原因吗?
  • 是的,我们可以做到这一点,但是我们丢失了分析数据,例如点击、first_open 归因源。你对这些麻烦有什么想法吗?
  • 我按照您的建议进行了更改。但 facebook 浏览器没有重定向 url。
【解决方案2】:

我们一直在努力解决类似的问题,这是我们最终解决的方法:

说这是您要分享的最终 Firebase 网址

https://xxxx.app.goo.gl/?apn=com.your.package&link=http://www.yourwebsite.com

现在在您网站的 index.html 页面中,添加以下元标记

<meta property="fb:app_id" content="your_fb_app_id" />
<meta property="al:android:package" content="com.your.package" />
<meta property="al:android:app_name" content="YourAwesomeApp" />
<meta property="al:android:url" content="somescheme://XYZ" />   <!-- identifiable by your app, your app must handle this data scheme inside your manifest's intent-filter tag --!>
<meta property="al:web:should_fallback" content="true" />
<meta property="al:web:url" content="http://www.yourwebsite.com/" />

现在应用程序在点击使用此链接共享的 Facebook 帖子时启动。

【讨论】:

  • 解释拒绝投票的原因真的很有帮助!
  • 你能举一个 somescheme://XYZ 和 manifest.xml 的例子来处理这个方案吗?这真的有效吗?没有人对这个问题给出好的评价。
  • 我可以在找到时间的时候尝试开发一个演示,但真的无法提交。不过,你可以试试看它是否有效!
  • 这个不清楚,你能解释一下我是怎么做的吗?因为 Facebook 在打开应用内浏览器后将我重定向到 Play 商店,无论如何都不会访问我们的网站
【解决方案3】:

我最近不得不将动态链接集成到我的一个客户应用程序中,但由于深度链接无法在 facebook+android_app 上运行,我遇到了很多麻烦。

由于定价原因,我无法迁移到 branch.io,因此我不得不以不同的方式解决问题,因此遵循了 @Rahul Shukla 的建议。

我以一个非常简单的 nodejs+express 设置结束,我收到动态链接 ID 并返回一个 HTML,其中包含 facebook applinks (android + iOS) 和重定向脚本 (window.location = 'your_dynamic_link) 所需的所有元标记') 供其他客户端使用。

最好的部分是,现在在 facebook 上,应用直接打开,没有两个平台的预览页面,并且链接通过脚本重定向在所有浏览器上都有效。

Here is the gist

【讨论】:

    【解决方案4】:

    我找到的解决方案是从这样的网页重定向到动态链接

    window.location.href = "intent:https://example.page.link/2wertygf456#Intent;end";
    

    这将在您的系统默认外部浏览器中打开链接,并且深层链接可以完美运行。
    仅在 facebook 应用内浏览器上触发此操作

    if (ua.indexOf("FBAN") != -1 || ua.indexOf("FBAV") != -1) {window.location.href = "intent:https://example.page.link/2wertygf456#Intent;end";}
    

    【讨论】:

    • 这似乎只适用于 Android 手机。我们无法让它在 iOS 手机上运行。
    • 一个简单的短链接应该适用于 ios,但是当您创建动态链接时,请确保在“iosInfo”下包含您的“iosAppStoreId”。
    • 非常感谢,帮助很大。
    【解决方案5】:

    我尝试了一些方法,但完全失败了。当我在 Facebook 帖子中使用动态链接时,它会显示一个对话框,询问我是否要打开应用程序(我还没有安装我的应用程序)。虽然我接受打开应用程序,但没有任何反应,它没有按预期打开 Apple Store

    我必须使用下面的链接来强制它打开苹果商店应用程序 https://myapp.app.goo.gl/?link=http://mylink.com&ifl=https://itunes.apple.com/us/app/apple-store/idxxxxxxxx%3Fmt%3D8%26ct%3Dutm_source

    【讨论】:

      【解决方案6】:

      与 facebook 应用程序的深层链接在 android 中不起作用,因为 facebook 使用 InAppBrowser,如果您想让您的深层链接 url 在 facebook 中可用。您可以更改 Facebook 设置,例如: 在 Facebook 应用中:转到个人资料 -> 应用设置 -> 勾选外部打开的链接。

      更改设置后,您将从 facebook 应用程序 android 打开深层链接

      【讨论】:

      • 感谢您的回答,但我们正在尝试解决此问题,而不是强迫每个客户执行您描述的步骤。目标是让 Firebase 动态链接立即工作。
      • 您找到解决方案了吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 2015-07-31
      • 2017-02-24
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      相关资源
      最近更新 更多