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

标签 ios xcode deep-linking branch.io

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

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

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

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
    }
  }      
})

最佳答案

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

  1. 卸载应用
  2. 将链接粘贴到 Safari 中,然后单击它。如果您使用的是模拟器,您会看到一条错误消息,因为它正在尝试打开未安装的 App Store。
  3. 从 Xcode 运行测试应用
  4. 参数一定要传入init

如果这不起作用,这里有一些其他的故障排除建议:

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

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

关于ios - iOS 的 Branch.io 链接在安装后不传递数据,但适用于冷启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084270/

相关文章:

iphone - iOS 问题。我可以分发我的应用程序的 Xcode 模拟器版本吗?

android - 如何在 Deeplink 消息中添加自定义文本而不是 URL

ios - 首次从应用商店安装应用时,Firebase 动态链接不起作用

ios - XMLReader Xcode 错误

android - Cordova Facebook 插件 - 图形 API 版本?

ios - 如何缩放不同大小的 iOS 应用程序图标

ios - 舍入 UITableViewCell

ios - xcode中的框架被误删除

swift - iOS 框架中缺少必需的模块

android - 我的应用程序屏幕出现在浏览器中