【问题标题】:Show splash screen when application enters background应用程序进入后台时显示启动画面
【发布时间】:2012-10-12 17:30:01
【问题描述】:

我正在使用 iOS 的 phonegap 编写应用程序。当应用程序进入后台时,我试图显示启动画面。

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

applicationWillResignActive: 中,我正在调用一个JavaScript 函数并使用cordova 的方法cordova.exec(null,null, "SplashScreen, "show", []) 来显示启动画面。但似乎,这是行不通的。

当我恢复应用程序时,应用程序首先进入之前的状态,然后切换到启动画面,但我想在应用程序恢复时显示启动画面。我怎样才能做到这一点?

【问题讨论】:

  • anarnth,你是如何在你的目标 c 类中调用 javaScript 函数的?

标签: ios cordova background splash-screen


【解决方案1】:

如您所见,在应用恢复活动之前,不会修改实际的视图层次结构。尝试在 -applicationWillResignActive: 中设置一个属性/变量,这表明您应该在应用再次激活时显示启动画面,然后在 -applicationDidBecomeActive 中立即实际显示它:

【讨论】:

  • 马特,感谢您的回复。我试过你的建议。但是当应用程序被带到前台时,我仍然首先看到以前的状态,然后切换到启动。
  • 您的“show”方法是否显示动画?因为,您可能会尝试在没有动画的情况下进行更改,并强制布局/显示。此外,如果您在应用程序委托方法中进行这种思考时遇到问题,您可以尝试将其放入根视图控制器的 viewWillAppear 中。对不起,错误的线索。
【解决方案2】:

搞定了:

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

让当前的runloop运行片刻

有关答案的更多信息,请查看以下链接:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    相关资源
    最近更新 更多