我有几个分支链接,用于深入链接到我的iOS应用程序并将图像预加载到UIImageView中。它们在安装应用程序时可以正常工作,无论它是在后台还是已经终止。但是,如果尚未安装该应用程序,它们将无法运行。它们正确链接到应用程序商店,但是一旦安装了应用程序,参数似乎无法正确流动。
我说参数不会流经SEEM,因为我找不到测试方法,因为我认为没有办法通过Xcode中的deeplink模拟新的应用程序安装。我知道我可以在没有应用程序自动启动的情况下从Xcode构建到我的手机,然后单击深层链接,但到那时,应用程序已经安装在我的手机上,因此它违背了测试的目的。如果有人知道通过deeplink测试应用程序安装的方法,我很乐意接受这些信息并与它一起运行一段时间......
这是一个深层链接示例,应该将图形加载到衬衫设计中:
有没有人知道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
}
}
})
答案 0 :(得分:11)
您可以在安装应用之前确认是否点击了该链接吗?以下是使参数通过全新安装的测试流程:
如果这不起作用,以下是其他一些故障排除建议:
您是否可以添加日志记录以确保已将initSession添加到首次打开时执行的右侧委托方法。它应该在这个委托方法中:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
另一种常见情况是可以使用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的警告。