我有一个注册到 APNS 服务以接收通知的 iOS 5.1 应用程序。注册成功,我正确收到通知。当我尝试处理通知时,问题就来了。
应用程序运行后,didReceiveRemoteNotification
AppDelegate 中的方法会被正确调用,因此通知会按预期处理。但是,这仅在应用程序在前台运行时发生。
但是,当应用程序在后台运行或只是停止时,不会调用该方法。我读过您应该在方法方法中添加一些行以从字典didFinishLaunchingWithOptions
中获取通知并进行处理。userInfo
这工作得很好,但只有在通过单击通知中心的通知打开应用程序时。这意味着,如果您通过单击应用程序的标记打开应用程序,或者如果您在后台运行它只是通过更改上下文来打开应用程序,应用程序永远不会意识到收到了通知。此外,如果收到多个通知,我们可以通过单击通知中心一次只能处理其中一个,这很痛苦:-)
有什么方法可以在通知中心读取待处理的通知吗?我知道有一种方法可以使用该方法刷新它们,cancelAllLocalNotifications
但我还没有找到一种方法来读取它们。我真的需要处理所有这些。我想实现与第三方通知服务器的通信协议,以便在应用程序进入前台时再次检索信息,但由于信息已经在操作系统中,如果无法以某种方式访问它,我会觉得很奇怪。
那么,有人知道怎么做吗?提前致谢。