【问题标题】:How To Open Another of Our iOS Apps With Branch.io DeepLink From an iOS App如何使用来自 iOS 应用程序的 Branch.io 深层链接打开您的另一个 iOS 应用程序
【发布时间】:2017-12-03 17:33:25
【问题描述】:

我们控制了两个 iOS 应用。我们称它们为应用程序 ABC 和 XYZ。使用 Branch.io SDK,我们想知道如何:

  • 以编程方式 (Swift) 在应用程序 ABC 内创建延迟深层链接,目的是将用户带到应用程序 XYZ。我们将为应用 XYZ 使用现有的 URL 方案,因为后端服务器现在完全不参与这项工作。
  • 我们希望在点击 UIButton 时激活 Branch.io 深层链接(因此此处不涉及 WebView。只是一个原生按钮)
  • 我们希望将一个 20 多小时的 ID(字母和数字)以及可能的登录信息(如果我们能够安全可靠地执行此操作)传递给接收应用,即 XYZ 应用。

我们已按照https://docs.branch.io/pages/apps/ios/ 中的步骤操作,以确保基本工作正常。这包括“测试深层链接”部分。那工作得很好。

我相信我已经阅读了与 iOS 和 Branch.io 提供的仪表板相关的每一个 API 文档。

这个任务对我来说最有趣的是:

代码在这里(内容已更改,因此无法识别我们正在谈论的现实世界中的哪些应用,因为这并不重要):

    private class func createBranchIoLink(someIdentifier: String) {

        // Create content reference
        let buo = BranchUniversalObject(canonicalIdentifier: "content/\(someIdentifier)")
        buo.canonicalUrl = "xyz://content/\(someIdentifier)" // example is https://example.com/content/123
        buo.title = "Some Title"
        buo.contentDescription = "Add it to the other app"

        // Create link reference
        let lp: BranchLinkProperties = BranchLinkProperties()
        lp.channel = "ios"
        lp.feature = "some-feature"

        buo.getShortUrl(with: lp) { (url, error) in
            print(url ?? "")
            print(error ?? "")
            print("ok done")
            // when I take the url given to us here, the URL takes me back to THIS app instead of the app I want!
        }
    }

感谢您提供的任何帮助。谢谢!

【问题讨论】:

  • 快速建议您的使用案例:如果您的App ABC已经安装在设备上,您可以使用identifierForVendor+“您的数据库”跟踪关系链接-> identifierForVendor来获得更一致的结果。另一种选择是使用共享钥匙串将数据从一个应用程序传播到同一设备上的另一个应用程序。 Branch iO(或其他延迟深度链接提供商)可能会使用 cookie 或指纹(IP 地址)将点击的链接与已安装的应用程序相匹配。这两种方法都不太健壮。
  • 好点子和建议,@OleksiyIvanov 谢谢!

标签: ios deep-linking url-scheme branch.io ios-universal-links


【解决方案1】:

Brian 来自这里!

您可以在应用 ABC 中生成链接以打开应用 XYZ,但这也意味着您将无法生成打开应用 ABC 的链接。要实现此流程,您需要将 Branch SDK 集成到两个 iOS 应用程序中,但在 Branch 仪表板上为 XYZ 创建一个应用程序。

请注意以下几点:

这基本上会创建特定于应用程序 XYZ 的链接,如果 URI 方案和通用链接设置正确且与应用程序 XYZ 的分支仪表板一致,则应打开该应用程序。 App ABC只需要Branch key即可生成链接,App ABC不需要修改Entitlements文件或Info.plist。

我希望这会有所帮助!

【讨论】:

  • 有没有办法按照我们的要求使用Branch Key?因此,当我想为特定案例打开 XYZ 时,我使用 XYZ 密钥,而当我想为不同案例打开 ABC 时,我使用 ABC 密钥?
【解决方案2】:

我有带有 abc 配置的分支的 ABC 应用程序。

我有一个带有 xyz 配置分支的 XYZ 应用程序

我想在 ABC 内部生成打开 XYZ 的链接。

(ABC 现在也为自己生成链接)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 2014-09-18
  • 2022-09-23
  • 2016-05-07
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多