3

假设:我有一个自定义 URL 缩短器,它重定向到一个 branch.io 长 URL。该自定义 URL 域已在我的应用程序的通用链接权利文件中注册。当用户点击短链接时,应用程序打开并调用 application:continueUserActivity:restorationHandler:... 在该方法中,我获得了短链接后面的重定向 URL(分支),基于新链接创建一个新的 NSUserActivity 和从 Branch SDK 调用“continueUserActivity”方法(以新活动作为参数)。

问题是来自 Branch SDK 的回调没有返回任何连接到该链接的内容。它返回好像没有传递任何 URL。

如果我对来自重定向的链接进行硬编码并立即调用 Branch SDK,而不等待重定向响应,那么一切正常。我想这与 Branch SDK 中的时间相关。

问题是:在使用上述重定向方案时,如何让 Branch 识别链接并返回我需要的参数?(我想使用我自己的 URL 缩短器,而不是 Branch 的那个)

4

1 回答 1

0

在确定是否需要处理 Branch 链接时,Branch 会检查以验证 NSUserActivity 是否属于 NSUserActivityTypeBrowsingWeb 类型。如果是,Branch 检查 .webpageURL 以确定它是否是 Branch 链接。如果不是,Branch 认为没有单击任何 Branch 链接。

要在以其他方式打开应用程序后手动将分支链接传递到 SDK,有两个可用函数:.continue 和 .handleDeepLink。

。继续

    let activity = NSUserActivity(activityType: "NSUserActivityTypeBrowsingWeb")
    activity.webpageURL = URL(string: "https://testbed-swift.app.link/77Q527xswy")
    Branch.getInstance().continue(activity);

.handleDeepLink

    Branch.getInstance().handleDeepLink(URL(string: "https://testbed-swift.app.link/77Q527xswy"))

如果您调用其中一种方法,Branch SDK 将处理传入的 Branch 链接。如果这些方法不适合您,我会检查以验证您实际上是在代码中传入了工作中的 Branch 链接,而不是短链接你用来打开应用程序的。

于 2017-02-18T16:43:39.143 回答