Ios 未使用正确的元数据调用Branch.io深度链接处理程序
这是一种情况:如果我单击其中一个与自定义键/值关联的链接,则会触发从Ios 未使用正确的元数据调用Branch.io深度链接处理程序,ios,branch.io,deeplink,Ios,Branch.io,Deeplink,这是一种情况:如果我单击其中一个与自定义键/值关联的链接,则会触发从initSessionWithLaunchOptions:andRegisterDeepLinkHandler进行的回调,但如果应用程序是从链接新打开的,“params”仅包含自定义键/值。如果应用程序已经在后台运行,我单击了链接,则会调用回调,但不存在任何参数。这在几周前是有效的,现在似乎停止了。我也尝试升级到iOSSDK0.12.1,但还没有成功 作为一种解决方法,在应用程序激活后,我尝试执行对Branch.getInsta
initSessionWithLaunchOptions:andRegisterDeepLinkHandler
进行的回调,但如果应用程序是从链接新打开的,“params”仅包含自定义键/值。如果应用程序已经在后台运行,我单击了链接,则会调用回调,但不存在任何参数。这在几周前是有效的,现在似乎停止了。我也尝试升级到iOSSDK0.12.1,但还没有成功
作为一种解决方法,在应用程序激活后,我尝试执行对Branch.getInstance().getLateStreeFerringParams()
的延迟调用序列,有时我从中获取参数,但这不是确定性的,有时需要2秒,有时10秒,有时从不。
@以下是应用程序代理的部分。顺便说一句,我没有在应用程序中集成facebook:
func应用程序(应用程序:UIApplication,didfishlaunchingwithoptions启动选项:[NSObject:AnyObject]?)->Bool{
让branch:branch=branch.getInstance()
branch.initSessionWithLaunchOptions(launchOptions,andRegisterDeepLinkHandler:{params,错误在
如果(错误==nil){
打印(参数)
self.tryInviteFlow(参数)
}否则{
打印(错误。本地化描述)
}
})
}
func应用程序(应用程序:UIApplication,continueUserActivity用户活动:NSUserActivity,restorationHandler:([AnyObject]?)->Void)->Bool{
//将url传递给句柄深度链接调用
返回Branch.getInstance().continueUserActivity(userActivity);
}
这里有一个快速故障排除入门,用于解决分支链接在冷启动时正常工作,但在应用程序在后台启动后变为活动状态时无法正常工作的问题
从分支链接打开应用程序时:
- 如果应用程序是冷启动的(即它不在后台),则入口点是didFinishLaunchingWithOptions
- 如果应用程序位于后台并通过通用链接打开(如果设备运行的是iOS 9.2+),则进入点将是continueUserActivity功能
- 如果应用程序是通过URI方案打开的(如果设备运行的是iOS 9之前的版本,可能是iOS 9到9.2版本),则入口点将是openURL函数
- 在openURL中,这是:Branch.getInstance().handleDeepLink(url)李>
- 在continueUserActivity中,这是:Branch.getInstance().continue(userActivity)
为了避免这种“竞争条件”类型的情况,只需在init回调中检查分支链接参数,或者在收到已配置为指示init回调正在完成的通知后检查分支链接参数(您可以在SDK附带的TestBed Swift项目中看到以这种方式使用通知的示例,如下所示:).Alex和Branch.io在这里:这真是太奇怪了!我们可以看到AppDelegate的相关部分和一个无法正常工作的链接示例吗?另外,您是否正在使用Facebook SDK?我们现在有一个已知的边缘案例,但是有一个workaround@AlexBauer使用应用程序代理的代码更新没有更新?我也有同样的问题