如果应用程序处于后台模式,则为推送通知调用啥委托

Posted

技术标签:

【中文标题】如果应用程序处于后台模式,则为推送通知调用啥委托【英文标题】:What delegate is called for a push notification if an application is in background mode如果应用程序处于后台模式,则为推送通知调用什么委托 【发布时间】:2012-12-04 21:42:09 【问题描述】:

我阅读了关于 SO 和 Apple 文档的近十几个问题,但仍然不清楚一个案例(主要是因为每个人使用的术语略有不同)。

我感兴趣的案例是:

a) 应用程序在后台运行(例如 VOIP)。 我指的是here定义的背景状态

b) 应用程序已注册远程通知。

c) 提供商发送推送通知。 ios 设备会收到此通知。

接下来会发生什么?

1) iOS 将根据 UI(警报、徽章)显示,并且在用户单击警报上的 VIEW 按钮或点击 Springboard 上的应用程序图标之前,不会调用任何委托。

我的理解是假设会发生这种情况。

2) 将立即调用 didReceiveRemoteNotification 委托

如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

【参考方案1】:

在您通过点击通知进入应用程序之前,不会调用任何代理。 那么这是回调的顺序:

1) applicationWillEnterForeground
2) didReceiveRemoteNotification
2) applicationDidBecomeActive 

【讨论】:

【参考方案2】:
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;

将被调用。

【讨论】:

以上是关于如果应用程序处于后台模式,则为推送通知调用啥委托的主要内容,如果未能解决你的问题,请参考以下文章

远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)

推送通知的“查看”委托

应用程序尚未启动时的 Apple 推送通知委托方法

当应用程序处于终止模式时,如何从推送通知重定向到特定的视图控制器

当应用程序处于非运行状态时,推送通知委托触发的解决方案是啥?

应用在前台运行时收到 iOS 推送通知