簡體   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