如果应用程序处于后台模式,则为推送通知调用啥委托
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;
将被调用。
【讨论】:
以上是关于如果应用程序处于后台模式,则为推送通知调用啥委托的主要内容,如果未能解决你的问题,请参考以下文章
远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)
当应用程序处于终止模式时,如何从推送通知重定向到特定的视图控制器