Show splash screen when application enters backgro

2019-05-23 05:08发布

I am writing an application using phonegap for iOS. I am trying to show splash screen when application enters to background.

(void)applicationWillResignActive:(UIApplication *)application [...]

In applicationWillResignActive: I am calling a JavaScript function and using cordova's method cordova.exec(null,null, "SplashScreen, "show", []) to show splash screen. But it seems like, this is not working.

When I resume the app, the application brings the previous state first and then switches to splash screen, but I want to show the splash screen when the app resumes. How can I accomplish that?

2条回答
We Are One
2楼-- · 2019-05-23 05:33

Got this working:

- (void) applicationWillResignActive:(UIApplication *)application {
  //Call to JS to change to splash
 [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.02
}

Allow the current runloop to run for a brief moment

For more information on the answer please check the below link:

The exact moment iOS takes the view snapshot when entering background?

查看更多
孤傲高冷的网名
3楼-- · 2019-05-23 05:45

As you've experienced, the actual view hierarchy will not be modified until the app resumes activity. Try setting a property/variable in -applicationWillResignActive: that indicates you should show the splash screen when the app becomes active again, then actually show it immediately in -applicationDidBecomeActive:

查看更多
登录 后发表回答