Branch.io 如何从主域上的通用链接迁移

Branch.io how to migrate from universal links on primary domain

目前我们有通用的 link 看起来像 http://example.com/sharing/< id >/ 通过 safari 智能横幅打开我们的 iOS 应用程序。但是智能横幅很糟糕,所以我们想使用 Branch.io 旅程横幅,它实际上会在人们加载页面时出现。由于这些 link 已经在野外,他们需要继续工作,以某种方式进入应用程序。将来,我们将从应用程序内部生成 branch.io 分享 link,但网络上的这些着陆页将继续存在。

我正在从 javascript 呼叫 branch.init('key_test_foo');,出现了 Journeys 横幅。它只显示 "Get" 按钮,从不显示 "Open"。我不清楚如何通过 branch.io 传递对象 ID,以便应用程序可以导航到正确的位置。

该应用程序是在 Xamarin 中构建的,我想我已经按照示例正确构建了集成。它不在我们通过应用程序商店构建的生产版本中,我只是 运行 通过 Visual Studio.

中的调试器安装应用程序

我什至会满足于像 imgur 那样的 "Open in App" link,只要我可以在 safari 中单击以在正确的位置打开应用程序。

我觉得我不应该在每次查看此页面时都"make a link",对吗?

编辑: 一个额外的问题。我想我想更改 og:url 以便当 facebook 抓取我的页面时,它将通过分支打开(而不是返回到我的站点)。但是我该如何设置呢? Facebook 在加载页面时不会 运行 任何 JS,是吗?我可以将它设置为 my.app.link 并且驱动深度 link 路由的 al:ios:url 会发生魔法吗?

我认为: 可能是解决方案。

1. Journey 的横幅导航到您的应用程序。

Branch 使用格式为 -alternate.app.link 域的域作为 link 在 Journeys 按钮后面。为确保点击 Journeys CTA 导航到您的应用程序,请确保您已在 'Associated Domains' 文件中为您的应用程序添加 -alternate.app.link 域。您可以查看提供有关如何添加域的信息的文档 here.

2。 Journeys CTA 的 Get v/s Open 问题

Branch 使用变量 has_app 来确定设备是否安装了该应用程序。要将此变量设置为 true,用户应单击 Journey CTA 并被重定向到应用程序(而不是 App Store)。此外,CTA 未更新的问题在开发过程中很常见,因为该应用程序经常在设备上重新安装。由于此测试,标志 has_app 进入故障状态。 要强制重置 has_app 变量以将 Journey 的横幅 CTA 从 'Download' 更改为 'Open',请执行以下步骤:

  1. 单击“下载”按钮 - 这应该会重定向到 Play 或 App Store
  2. 安装应用程序
  3. Return 到带有 Journeys 横幅的网页,该网页仍应显示下载按钮
  4. 再次点击“下载”按钮 - 应用应该会打开
  5. 关闭并重新加载带有 Journeys 横幅的网页 - 横幅现在应该有一个 "Open" 按钮
  6. 点击 "Open" 按钮 请注意,仅在出于测试目的的开发模式下才需要执行上述步骤。在生产环境中,用户不会看到这个问题。此外,更新标志可能需要一些时间(长达 30 分钟)。

3。导航到应用程序中的正确位置

如果您计划使用旧域 links 进行深度 linking,您可以将 Branch 仪表板上的 Link 域更新为您的 links 目前正在使用。然后您可以使用分支 API 再次重新创建 link。请注意,Branch 将是您域的权威注册商,您不能在此域上托管任何内容。

如果您不想这样做,可以将额外的 link 参数附加到您的旅程按钮。当用户点击 Journey CTA 并被重定向到 App Store/your 应用程序时,这些 link 参数将在您的应用程序中可用。您可以参考文档 here 了解更多信息。

对于上述两种情况,为了读取应用程序中的 link 参数,您应该将 Branch SDK 集成到您的 Xamarin 应用程序中。 (参考文档here