iOS应用程序从通用链接进入前台之前显示启动画面

时间:2017-05-30 15:00:26

标签: ios objective-c iphone

我是iOS开发的新手,我目前面临的问题是我无法找到答案。

我正在使用Branch.io在我们的应用中实现deeplink。除了我试图实现的一件事之外,一切都很好。当应用程序恢复到前台时,它会简要显示在进入后台之前的最后一个屏幕(通过一些研究我相信iOS会在进入后台之前拍摄应用程序屏幕的快照)。

我尝试了什么

通用链接由AppDelegate中的方法application:continueUserActivity:restorationHandler:接收。所以我添加了启动画面,但是当调用该方法时,最后一个屏幕已经可见。所以过渡就像last screen -> splash screen -> destination screen。不是理想的解决方案。

然后我尝试在AppDelegate中的方法applicationDidEnterBackground:中将启动画面添加到窗口,这样快照就是那个并且它可以工作,但不是真正想要的方式。应用程序切换器也会使用该快照,也可以在应用程序到达前台时使用(仅在深层链接的情况下)。

伟大的问题

当应用程序通过深度链接调用进入前台(而不是使用快照方法)时,我可以以某种方式显示启动画面,还是不可能?

1 个答案:

答案 0 :(得分:0)

applicationDidBecomeActive方法中使用此代码。您可以使用任何要显示的图像。我使用背景颜色来显示变化。

- (void)applicationWillResignActive:(UIApplication *)application {

UIImageView *imgView = [[UIImageView alloc] init];
imgView.frame = [UIApplication sharedApplication].keyWindow.frame;
imgView.backgroundColor = [UIColor redColor];
[[UIApplication sharedApplication].keyWindow addSubview:imgView];

}

并删除图片:

   - (void)applicationDidBecomeActive:(UIApplication *)application {

for(UIView *view in [UIApplication sharedApplication].keyWindow.subviews)
    if([view isKindOfClass:[UIImageView class]])
        [view removeFromSuperview];

  }