繁体   English   中英

在应用程序从通用链接进入前景之前,iOS会显示启动屏幕

[英]iOS show splash screen before app enter foreground from universal link

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

我正在使用Branch.io在我们的应用程序中实现Deeplink。 一切正常,除了我要实现的一件事。 当应用恢复到前台时,它会短暂显示进入背景之前的最后一个屏幕(通过一些研究,我相信iOS会在进入背景之前对应用屏幕进行快照)。

我尝试了什么

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

然后,我尝试在AppDelegate中的applicationDidEnterBackground:方法中,将初始屏幕添加到窗口中,以便快照即能正常运行,但不是真正想要的方式。 应用程序切换器也将使用该快照,并且每当应用程序出现在前台时(仅在Deeplink情况下才需要)。

伟大的问题

当应用程序仅通过Deeplink调用进入前台(而不使用快照方法)时,是否可以以某种方式显示启动屏幕?

在您的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];

  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM