iOS的Branch.io链接在安装后不传递数据,但适用于冷启动

时间:2015-06-27 01:34:29

标签: ios xcode deep-linking branch.io

我有几个分支链接,用于深入链接到我的iOS应用程序并将图像预加载到UIImageView中。它们在安装应用程序时可以正常工作,无论它是在后台还是已经终止。但是,如果尚未安装该应用程序,它们将无法运行。它们正确链接到应用程序商店,但是一旦安装了应用程序,参数似乎无法正确流动。

我说参数不会流经SEEM,因为我找不到测试方法,因为我认为没有办法通过Xcode中的deeplink模拟新的应用程序安装。我知道我可以在没有应用程序自动启动的情况下从Xcode构建到我的手机,然后单击深层链接,但到那时,应用程序已经安装在我的手机上,因此它违背了测试的目的。如果有人知道通过deeplink测试应用程序安装的方法,我很乐意接受这些信息并与它一起运行一段时间......

这是一个深层链接示例,应该将图形加载到衬衫设计中:

https://bnc.lt/l/5wGbOak_QW

有没有人知道Branch在安装后没有正确发送数据的任何已知问题?

编辑:这是我现在在appDelegate分行代码中得到的内容。我无法证明url没有设置,但HomeViewController没有像非安装后启动那样下载链接图像。就像我之前提到的,我不知道如何模拟这种情况,因为Xcode模拟器总是先安装,所以我没有机会模拟单击预安装链接。

let branch: Branch = Branch.getInstance()
    branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
  if (error == nil) {
    if let url = params["product_picture_url"] as? String {
      let url = NSURL(string: url)!
      HomeViewController.injectedImageUrl = url
    }
  }      
})

2 个答案:

答案 0 :(得分:11)

您可以在安装应用之前确认是否点击了该链接吗?以下是使参数通过全新安装的测试流程:

  1. 卸载应用
  2. 将链接粘贴到Safari中,然后单击它。如果您使用的是模拟器,则会在尝试打开未安装的App Store时看到错误消息。
  3. 从Xcode运行测试应用程序
  4. 绝对应将参数传递给init
  5. 如果这不起作用,以下是其他一些故障排除建议:

    1. 您是否可以添加日志记录以确保已将initSession添加到首次打开时执行的右侧委托方法。它应该在这个委托方法中:

      func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
      
    2. 另一种常见情况是可以使用Test键创建链接,并且您的plist中有Live键。分支不允许深度链接来自Test - >住或反之亦然。如果您不确定链接与哪个键相关联,则可以在仪表板上选择“测试”或“实时”以查看详细信息后,将“debug = true”附加到链接(如https://bnc.lt/l/5wGbOak_QW?debug=true)。如果您选择了错误的密钥,则会显示“未找到链接”。否则,它将显示链接的详细信息。

答案 1 :(得分:0)

我通过更改AppDelegate中其中一个回调的签名来拍摄自己。

我有

func application(_: UIApplication, continue userActivity: NSUserActivity, _: @escaping ([Any]?) -> Void) -> Bool

正确的签名是

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool

因此,我总是在深层链接处理程序中获得["+clicked_branch_link": 0, "+is_first_session": 0],而在安装应用程序数据后的第一次启动时,将按预期获得。并且没有一个关于分支SDK的关于缺少回调的窥视¯\ _(ツ)_ /¯有趣的是,日志中有来自Google Login SDK的警告。