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

时间:2017-03-22 15:04:29

标签: ios swift branch.io

这是我准备和分享用户分支链接的方式:

refl : n \equiv zero

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

1 个答案:

答案 0 :(得分:0)

当您将Branch集成到Xcode项目中时(如此处的分支文档:https://dev.branch.io/getting-started/sdk-integration-guide/guide/ios/中所述),您添加代码以初始化AppDelegate.swift文件的didFinishLaunchingWithOptions中的Branch SDK(这是一个示例:{{3 }})。

此initSession调用的deepLinkHandler回调中将提供“params”字典。此params字典包含与用于打开应用程序的Branch链接关联的键值对,当然假设应用程序是通过Branch链接单击打开的。您可以通过检查params字典的+ clicked_branch_link参数来确定是否因为分支链接点击而打开了应用程序。

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

除了在init回调中返回params字典外,Branch SDK还会将params保存在设备的本地存储中。通过调用getLatestReferringParams(在此处描述:https://github.com/BranchMetrics/ios-branch-deep-linking/blob/master/Branch-TestBed-Swift/TestBed-Swift/AppDelegate.swift#L43-L74),可以在会话的整个过程中访问这些保存的参数。

有关代码示例,请查看SDK中包含的TestBed-Swift应用程序:

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

  • 通常在发生这种情况时,这是因为用于创建链接的Branch键与应用程序已配置使用的Branch键不同(即Live vs. Test键不匹配)
  • 从分支链接打开后,应用程序可能会触发显示会话结束的警报或其他活动。当应用程序再次变为活动状态时,分支链接单击不会触发新会话,因此params字典将为空。
  • 有时,合作伙伴会使用实际不属于分支链接的网址进行测试。创建有效链接的不同方法在此处的文档中进行了描述:https://testbed-swift.app.link/appstore
  • 如果链接未正确触发,则无法正常运行。分支链接在iOS上用作Universal Links,因此受到Apple对链接行为的限制。最重要的是,最终用户必须利用它们。通过将它们粘贴到浏览器地址栏中无法触发Universal Links;通过从另一个链接重定向到他们;或者将它们包装在其他链接中。
  • 点击链接的应用可能不支持通用链接。 Google和Facebook广告以及使用专属网络视图的应用通常会干扰通用链接。确保首先将链接粘贴到物理设备上的Notes中,然后通过长按它们并从弹出菜单中选择“在应用程序中打开”选项来测试链接。