我有一个iOS 5.1应用程序,它向APNS服务注册以接收通知。该注册成功,我收到正确的通知。我尝试处理通知时出现问题。如何处理iOS中的未读推送通知?
一旦应用程序正在运行,AppDelegate中的方法didReceiveRemoteNotification
被正确调用,因此按照预期处理通知。但是,这仅在应用程序在前台运行时发生。
但是,当应用程序在后台运行或简单停止时,该方法不会被调用。我读过你应该添加一些方法didFinishLaunchingWithOptions
方法来获得来自userInfo
字典的通知,并处理它。这可以正常工作,但只有在通知中心点击通知后才能打开应用程序。这意味着,如果您通过点击徽章打开应用程序,或者只是在后台运行时更改上下文,则应用程序从未意识到收到通知。此外,如果收到多个通知,我们可以只能通过点击通知中心来处理其中的一个,这很痛苦:-)
有没有什么方法可以读取通知中心的未决通知?我知道有一种方法可以使用方法cancelAllLocalNotifications
来刷新它们,但我还没有找到一种方法来阅读它们。我真的需要处理所有这些问题。我想在第三方通知服务器上实现通信协议,以便在应用程序进入前台时再次检索信息,但由于信息已经在操作系统中,因此如果无法以某种方式访问它,我会发现它很奇怪。
那么,有没有人知道一个办法呢?提前致谢。
可以肯定的是推送通知不能保证到达。也许我在浪费时间试图从notifiaction服务中读取它们,因为我不能确定它包含了我想要的所有信息。无论如何,我需要知道在丢弃任何解决方案之前是否有办法这样做...... – Bartserk
您的答案是正确的。据我所知,除了从服务器端获取外,没有其他解决方案。 –