12

我正在尝试在 iOS 应用中实现Firebase 动态链接。目标是为营销目的提供一个干净的 URL,以便人们可以在社交媒体上共享链接。这个想法是人们将共享以我的域名开头的干净 URL。

单击该链接后安装应用程序时,我们希望能够通过查看 Firebase 提供的有效负载来跟踪谁引用了该应用程序安装。我认为这个目标类似于 Firebase将网络用户转换为移动应用用户的用例。

我想在社交媒体上分享的示例链接是:http ://example.com/my-payload-here

我已经尝试了几个案例,但无论如何我都无法获得我正在寻找的行为。以前有没有人成功实施过这个?

这是我的测试程序:

  1. 卸载应用程序
  2. 将要在 iMessage 中测试的链接发送给我自己
  3. 点击我的 iOS 设备上的链接(不使用模拟器)
  4. 从 App Store 安装应用程序
  5. 下载完成后点击 App Store 中的“打开”按钮启动应用程序

以下是我的发现:

  1. 从 Firebase 控制台( https://xyz.app.goo.gl/ABCD ) 生成的短链接 - 链接在 App Store 中打开。我安装应用程序。当我在安装后启动应用程序时,没有传递有效负载。如果我退出应用程序,返回 iMessage 中的链接,然后再次启动,payload 就会被传递。

  2. 对于 #1 中生成的链接,长链接与 Firebase 控制台中的“长动态链接”相同https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi =12345&ibi=com.example.MyApp ) - 行为与 #1 相同

  3. 使用我的域的短链接http://example.com/redirect/my-payload-here,配置为 301 重定向到 #2 中的 URL) - 在 App Store 中打开。我安装。当我在安装后启动应用程序时,没有传递有效负载。如果我退出应用程序,返回 iMessage 中的链接,然后再次启动,该链接仍会转到 App Store。

我有一些问题:

  1. 案例 1 和案例 2 的第一次启动时为什么没有交付有效负载?
  2. 我们如何才能启动应用程序并交付有效负载,而不是去 App Store?

我还查阅了Firebase 流程图以获取案例 2 中的深层链接。

4

2 回答 2

7

Google Firebase 团队向动态链接添加了对自定义子域的支持。

  • 您现在最多可以为您的动态链接指定五个自定义 page.link 子域。使用这些新的自定义子域的短链接类似于以下示例: https ://example.page.link/abcXYZ

  • 目前无法删除分配给项目的 Firebase 动态链接域。(firebase 团队正在处理此问题。)

  • 您现在可以将可用作动态链接的深层链接(链接)或后备链接(ifl、ipfl、afl、ofl)的 URL 模式列入白名单。如果您定义了白名单,动态链接将不会重定向到与白名单模式不匹配的 URL。

  • 您可以在Firebase 控制台中尝试这两个功能。

于 2018-06-11T08:27:57.233 回答
3

Firebase 目前无法做到这一点。如果您需要白标 URL,您要么需要自己构建,要么使用更强大的链接平台,如Branch.io(全面披露:我在 Branch 团队)。

具体回答您的问题:

  1. 我已经在一个测试平台应用程序中实现了 Firebase 动态链接,并且可以确认第一次通过安装进行链接对于长 URL 和短 URL 变体都有效您的AppDelegate配置可能有问题,因此如果您想共享代码,我们可以查看一下。
  2. Firebase 目前不支持自定义域。理论上(如果你能解决上面的第一个问题)你可以通过使用你尝试过的重定向来让它在第一次安装时工作。但是,一旦安装了应用程序,您将永远无法使用 Firebase 链接数据启动应用程序。这是因为通用链接基于链接的域工作,甚至不请求 Web 目标。即使您在自己的域上手动启用通用链接,应用程序也会立即打开而无需调用 Firebase,并且永远不会设置链接数据。
于 2016-12-23T18:56:48.997 回答