电话重启后,远程通知未发送到我的应用

时间:2015-06-05 20:35:31

标签: ios iphone push-notification apple-push-notifications

根据远程通知的Apple's documentation

  

讨论

     

使用此方法处理应用的传入远程通知。   与application:didReceiveRemoteNotification:方法不同   仅当您的应用程序在前台即系统中运行时才会调用   当您的应用在前台运行或运行时调用此方法   背景。此外,如果您启用了远程通知   在后台模式下,系统启动你的应用程序(或从中唤醒它)   暂停状态)并将其置于远程时的后台状态   通知到了。 但是,系统不会自动进行   如果用户强行退出,请启动您的应用。在那种情况下,   用户必须重新启动应用程序或在系统之前重新启动设备   尝试再次自动启动您的应用。

在我的情况下(iOS 7.1.1),应用程序被杀后(从“最近的应用程序列表”向上滑动)并且重新启动手机后,远程通知不会传递到应用程序。如果我打开应用程序,会按预期交付通知。我错过了什么?

编辑:避免任何误解。我期望的是以下流程:

  1. 用户杀死该应用;
  2. 用户重启手机;
  3. App服务器发送新消息;
  4. 操作系统尝试启动应用并发送通知。

2 个答案:

答案 0 :(得分:1)

问题是您是开发人员,使用情况并不常见。您的操作:启动应用程序,将其滑出,关闭手机(不是待机,而是关闭),重新启动,输入密码,让服务器发送通知。那不行

由于某些原因,在重新启动手机后的90秒左右时间内仍未收到发送的通知。等待90秒钟,然后您发送通知,并且应该会收到它。由于重新启动用户电话的时间与您发送通知的时间之间没有关系,因此这对于开发人员和测试人员而言只是一个问题,而不是对于真正的用户而言。

答案 1 :(得分:0)

从您链接的文章中,找到您引用的方法(application:didReceiveRemoteNotification:

  

如果远程通知到达时应用程序未运行,则   方法启动应用程序并提供相应的信息   启动选项字典。 该应用不会调用此方法   处理该远程通知。相反,你的实施   application:willFinishLaunchingWithOptions:或   application:didFinishLaunchingWithOptions:方法需要得到   远程通知有效载荷数据并做出适当的响应。

您是否在will/didFinishLaunchingWithOptions:的选项词典中检查了远程通知有效负载?