当分支链接被点击并打开我的应用程序时,如何访问元数据…?

这是我如何准备和分享给用户的分支链接:

let branch = BranchUniversalObject(canonicalIdentifier: UUID().uuidString) branch.title = self.territory.name branch.metadata = self.territory.dictionary let properties = BranchLinkProperties() properties.controlParams = self.territory.dictionary branch.getShortUrl(with: properties) { string, error in if let string = string, let url = URL(string: string) { let controller = UIActivityViewController.controller(activityItem: url, from: sender, traitCollection: self.traitCollection) alert.dismiss(animated: true) self.present(controller, animated: true) } } 

然后,我想访问我传递给该链接的参数,但我不知道如何…任何帮助?

当您将分支集成到您的Xcode项目中时(如分支文档中所述: https : //dev.branch.io/getting-started/sdk-integration-guide/guide/ios/ ),您将添加代码以初始化Branch SDK在AppDelegate.swift文件的didFinishLaunchingWithOptions(这里是一个例子: https : //github.com/BranchMetrics/ios-branch-deep-linking/blob/master/Branch-TestBed-Swift/TestBed-Swift/AppDelegate.swift#L43 -L74 )。

在这个initSession调用的deepLinkHandlercallback中将会有一个“params”字典。 该params字典包含与用于打开应用程序的分支链接关联的键值对,假设应用程序是通过分支链接点击打开的。 您可以通过检查params字典的+ clicked_branch_link参数来确定由于分支链接点击而打开的应用程序。

在didFinishLaunchingWithOptions中注册的分支callback也会在应用程序变为活动状态时被调用,并且在AppDelegate的openURL和continueUserActivity函数中触发相应的分支调用。

除了在initcallback中返回params字典之外,Branch SDK还会将参数保存在设备的本地存储中。 这些保存的参数可以通过调用getLatestReferringParams进行访问(在这里描述: https : //github.com/BranchMetrics/ios-branch-deep-linking#retrieve-session-install-or-open-parameters )。

对于代码示例,请检查包含在SDK中的TestBed-Swift应用程序:

如果您在initcallback中检查+ clicked_branch_link,但发现它为0或“false”,则可能有多种原因:

  • 通常发生这种情况是因为用于创build链接的分支键与应用程序已configuration使用的分支键不同(即Live与Test键不匹配)
  • 从分支链接打开后,应用程序可能会触发显示导致会话closures的警报或其他活动。 当应用程序再次变为活动状态时,新的会话将不会被分支链接点击触发,因此params字典将为空。
  • 有时候,合作伙伴会使用并非实际分支链接的URL进行testing。 下面的文档描述了创build有效链接的不同方法: https : //dev.branch.io/getting-started/creating-links/overview/
  • 如果链接没有正确触发,它将无法正常工作。 Branch链接function在iOS上为Universal Links,因此受到Apple对链接行为的限制。 最重要的是,它们必须由最终用户使用。 通用链接不能通过粘贴到浏览器地址栏来触发; 从另一个环节重新引导他们; 或者通过将其包装在其他链接中。
  • 链接被挖掘的应用程序可能不支持通用链接。 Google和Facebook广告以及使用俘虏网页浏览的应用程序经常会干扰通用链接。 确保首先将链接粘贴到物理设备上的Notes中,然后长按,然后从popup菜单中select“在应用中打开”选项来testing链接。