我不确定如何处理处理本地通知的不同状态(或为此而推送)。
据我了解,这些是不同的场景(如果我错了,请纠正我):
一种。应用程序在前台
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
被调用并且:application.applicationState == UIApplicationStateActive
湾。应用程序在后台
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
被调用并且:application.applicationState == UIApplicationStateInactive
C。该应用程序已终止,因此:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}
被调用的第一和后记:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{}
在 application.applicationState == UIApplicationStateActive 的地方被调用(因为它在 didFinishLanching 之后一段时间变得活跃......
在这三种情况下,我应该采取不同的行动:
一种。如果应用程序在前台,我想显示一个显示通知正文的警报,如果用户使用继续按钮关闭警报,则将一些视图控制器推送到堆栈上。
湾。如果应用程序在后台,并且用户按下警报,那么我想自动将视图控制器推送到堆栈,因为用户按下警报表明他想要遵循它的含义。
C。与 b 相同的场景。用户按下警报并希望看到相关视图。
我的问题是我应该如何/在哪里将相关视图推送到 navigationViewController 以及如何在前台收到通知时显示警报?
问题是场景 c 包含场景 a。这意味着,在调用了 didFinishlaunching 之后(不管我是否在那里处理了通知),然后调用了 didRecieveLocalNotification(就好像我在前台收到通知一样),但在这种情况下,我不想显示警报。 .
我对开始的假设有误吗?