检测来自通知管理器和实时的didReceiveLocalNotification

时间:2012-10-19 19:17:29

标签: ios cocoa-touch uilocalnotification

当调用didReceiveLocalNotification时,我想知道是否是因为用户从我的应用程序外部点击了通知,或者是因为我的应用程序是发生警报时的前台应用程序而被调用。重要的是要知道差异,因为在一种情况下,用户已经获得了一些信息的警报,并且不再需要它,在另一种情况下,他们还没有收到该信息。

我目前正在applicationWillEnterForeground中设置一个标志,并在applicationDidBecomeActive中清除。如果在调用didReceiveLocalNotification时设置了该标志,我知道它来自我的应用程序之外,并且用户已经以某种形式看到了系统通知。但是,我只是注意到,如果用户收到通知,则不会设置此标志,但是还没有点击它(因此它只是在下拉通知区域中),然后在我的应用程序位于该区域时从该区域单击它前景。在这种情况下,我的应用程序已经在前台,因此设置了标志。

理想情况下,UILocationNotification上会设置一个属性,我可以检查该属性以获取此信息。

我想我可以使用fireDate并说它是否小于1或2秒,并且标志未设置,那么我实时收到通知,而不是以后...但我更喜欢某些东西如果可能的话,更加健全。

编辑:正如我点击保存一样,我注意到“相关”部分有这个链接:

iOS - Need to distinguish UILocalNotification in application:didReceiveLocalNotification:

很抱歉发布重复的问题而不先搜索更多(我确实搜索过了!)。希望这可能会得到一个更好的答案,因为那个答案并没有真正的答案 - 但也许没有一个。

0 个答案:

没有答案