在应用运行背景时获取推送通知的自定义有效负载

时间:2011-08-24 09:51:38

标签: iphone ipad background push-notification payload

当app在后台时,有人能告诉我们如何获得推送通知的自定义有效负载吗?

如果您的应用在后台并且您收到推送通知并且用户点按应用“查看”,则会启动该应用并调用application:didFinishLaunchingWithOptions:。在这种情况下,我们可以通过UIApplicationLaunchOptionsRemoteNotificationKey字典中的userInfo访问自定义通知有效内容。

如果您的应用在后台并且您收到推送通知并且用户点按应用图标,则会将应用程序带到前台。

当发生这种情况时,只调用applicationDidEnterForeground:,并且无法访问推送通知的有效负载。

我的要求是仅注册徽章,没有提醒,因此当用户在后台收到通知时,没有“查看”按钮来启动应用。当用户收到通知并且应用程序处于后台时,会调用用户点按应用程序图标applicationDidEnterForeground:。因此,我们无法访问launchOptions字典或userInfo字典,从而获取通知有效负载。

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:7)

如果您的应用在后台运行,当用户点按状态栏下拉菜单中的通知时,系统会调用

application:didReceiveRemoteNotification:。答案中的link you referred to说明了如何使用它。

编辑: 对不起,我误解了你的问题(错过了你只做徽章)。随意向我投票:(

答案 1 :(得分:2)

我终于知道在app运行后台时无法获得推送通知的自定义有效负载。 This link总结了这一点。