[英]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.