我是iOS开发的新手,我目前面临的问题是我无法找到答案。
我正在使用Branch.io在我们的应用中实现deeplink。除了我试图实现的一件事之外,一切都很好。当应用程序恢复到前台时,它会简要显示在进入后台之前的最后一个屏幕(通过一些研究我相信iOS会在进入后台之前拍摄应用程序屏幕的快照)。
我尝试了什么
通用链接由AppDelegate中的方法application:continueUserActivity:restorationHandler:
接收。所以我添加了启动画面,但是当调用该方法时,最后一个屏幕已经可见。所以过渡就像last screen -> splash screen -> destination screen
。不是理想的解决方案。
然后我尝试在AppDelegate中的方法applicationDidEnterBackground:
中将启动画面添加到窗口,这样快照就是那个并且它可以工作,但不是真正想要的方式。应用程序切换器也会使用该快照,也可以在应用程序到达前台时使用(仅在深层链接的情况下)。
伟大的问题
当应用程序通过深度链接调用进入前台(而不是使用快照方法)时,我可以以某种方式显示启动画面,还是不可能?
答案 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];
}