我的目标是当用户单击iOS通知中心的uilocalnotification时打开特定的屏幕。
现在,如果用户在通知上行动时,该应用程序正在从后台恢复,我注意到didReceivelocalnotification被调用:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
现在,我可以从Uilocalnotification对象获取UserInfo字典并打开适当的屏幕。
不幸的是,当我的应用程序在该应用程序在前景中运行时,我的应用程序发布uilocationnotification时也称为同样的方法:
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
我将如何区分两种情况?
它传递给您的 application
对象,该对象包含 .applicationState
属性中的状态。
因此,您可以通过测试确保它不活跃...
if (application.applicationState != UIApplicationStateActive){
// do your stuff
}
就是!