Ios 应用程序登录屏幕的branch.io旁路,如何处理url处理前的延迟

Ios 应用程序登录屏幕的branch.io旁路,如何处理url处理前的延迟,ios,sdk,branch.io,Ios,Sdk,Branch.io,我正在ios应用程序中使用branch.io SDK。我们使用它作为一种方式来邀请用户访问我们的应用程序,并在存在分支链接时将他们重定向到自定义的登机屏幕。我们注意到的一件事是,在应用程序打开和调用分支处理程序之间有一点延迟 这意味着我的应用程序加载了它通常的启动屏幕,然后可能在半秒钟后运行分支的代码,我的应用程序重定向到正确的视图。我看到启动屏幕、登录屏幕半秒钟,然后是branch.io处理程序视图。所有这些都是正确的,但我想知道如何更好地构造它,以便没有初始登录屏幕视图 分支块和普通应用程序

我正在ios应用程序中使用branch.io SDK。我们使用它作为一种方式来邀请用户访问我们的应用程序,并在存在分支链接时将他们重定向到自定义的登机屏幕。我们注意到的一件事是,在应用程序打开和调用分支处理程序之间有一点延迟

这意味着我的应用程序加载了它通常的启动屏幕,然后可能在半秒钟后运行分支的代码,我的应用程序重定向到正确的视图。我看到启动屏幕、登录屏幕半秒钟,然后是branch.io处理程序视图。所有这些都是正确的,但我想知道如何更好地构造它,以便没有初始登录屏幕视图

分支块和普通应用程序的启动块也可能出现竞争情况——两者都是异步的。现在分支块总是需要更长的时间,所以没什么大不了的

我有一些想法:

1) 创建一个类似于LaunchScreen的初始视图,在branch.io返回之前,应用程序将在该视图上登陆,从而人为地扩展启动屏幕,而不是显示登录屏幕。这里的问题是,这还需要Branch.io触发non-Branch.io continuation,这意味着所有条目都要延迟半秒。不好的。如果我还需要网络呼叫,延迟可能会更长,微调器对这个过程没有帮助

2) 在branch.io处理程序中嵌入AuthManager登录状态代码,以便正常的应用程序进程串行运行到分支;而不是两者都运行异步。这再次造成了必须处理的延迟,否则只有半秒钟的白色屏幕。它还将我的整个应用程序的加载成功与branch.io的SDK按预期工作联系在一起,而不是我喜欢依赖的任何SDK

是否有更好的方法来构建此工作流

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   //...

   // initialize branch.io
   Branch *branch = [Branch getInstance];
   [branch initSessionWithLaunchOptions:launchOptions andRegisterDeepLinkHandler:^(NSDictionary *params, NSError *error) {
      // do stuff with branch, such as redirect to a custom View.
      // run every load and handled if branch.io link present     

      // possible network call(s) involved if branch link present.     
   }];

   // ...

   [[AuthManager sharedInstance] isLoggedInCompletionHandler:^{
      // load HomeViewController (logged in)
   } notLoggedInCompletionHandler:^{
      // load LoginViewController (not logged in)
   }];
}

Alex和Branch.io在这里:

这种轻微的延迟是等待服务器回调数据时不可避免的限制。Branch尽一切可能缩短等待时间,在试图解决这种情况时,我们的合作伙伴通常采取与您的第二个想法类似的方法

分支回调保证在100%的时间(即使网络断开时)触发,因此最好的选择是构建一个启动屏幕,基本上保留所有路由,直到回调到达。如果分支机构不提供任何信息,您可以定期进行路由。如果Branch提供了一些内容,您可以路由到深度链接的内容