是否可以读取ios中的所有推送通知?

时间:2014-12-10 15:04:35

标签: ios objective-c push-notification

我想阅读与我的应用相关的所有通知,这些通知都会在打开应用时显示在通知中心。请建议我任何想法。  我试过了,

 UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

但它只返回一个选定的通知。

2 个答案:

答案 0 :(得分:3)

[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]将返回导致您的申请开始的通知 因此,如果您收到推送通知,并从SpiringBoard打开申请,则[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]将为nil。 这意味着如果用户没有使用推送通知打开应用程序,则应用程序将不知道所接收的推送通知。

所以答案是 - 没有办法。

修改
基本上,如果您使用本地通知,则可以将预定通知([UIApplication scheduledLocalNotifications])保存到文件/服务器中,然后将预定通知与保存的文件进行比较。在这种情况下,您将知道传递了哪些通知。

答案 1 :(得分:1)

您无法在iOS设备上本地阅读所有等待通知。如果用户选择一个打开应用程序,您可以在所选信息上发送信息。 (使用您显示的代码)

通常,您要做的是维护与服务器上的设备ID绑定的已发送通知的列表(您应该已经拥有此通知,因为需要发送通知。您需要查询服务器以获取要在您的应用中显示的已发送通知列表。