打开应用时推送通知

时间:2012-11-28 18:15:57

标签: iphone objective-c ios

我在我的应用中有推送通知,如果应用关闭或应用在后台,所有工作都有效,但如果应用运行(有效)推送通知未显示,则调用方法application:didReceiveRemoteNotification:

2 个答案:

答案 0 :(得分:4)

您可以使用以下代码判断您的应用是否只是在didReceiveRemoteNotification中被带到了前台:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateActive )
        // app was already in the foreground
    else
        // app was just brought from background to foreground
    ...
}

您无法在交付时选择使用哪种演示方法来呈现推送通知,该推送通知在通知本身中编码(可选警报,徽章编号,声音)。但是,由于您可能控制了推送通知的应用程序和有效负载,因此您可以在有效负载中指定是否已经向用户显示了警报视图和消息。只有在应用程序已经在前台运行的情况下,您才知道用户不是通过警报或定期从主屏幕启动您的应用程序。

答案 1 :(得分:1)

查看此答案https://stackoverflow.com/a/7965961/869455

当应用程序打开时,应用程序有责任在应用程序中正确地通知handel:didReceiveRemoteNotification:并在应用程序内向用户显示消息。