3

在执行通知时调用的方法中:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

有没有办法发现通知是来自用户在通知中心点击警报,还是在应用程序运行时收到警报?

原因是:我想在用户点击警报时将他们引导到特定页面。如果用户在应用程序内时发出警报(因此,他们没有在通知中心点击警报),则会调用上述方法,并且我不想将他们踢到另一个屏幕。

但是,如果应用程序正在运行或在后台运行,并且他们已拉下通知中心,我确实希望将它们带到特定屏幕,并且在这些情况下调用相同的方法。

4

1 回答 1

3

不幸的是,你不能完全按照自己的意愿去做。你能来的最接近的是

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
    if (application.applicationState == UIApplicationStateActive)
        // They didn't come from the notification area
    else
        // They did
}

不幸的是,在接收警报时没有提供上下文信息。

于 2013-01-17T17:23:35.113 回答