按应用

时间:2015-05-27 07:38:19

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

是否可以通过应用程序捕获每个推送通知?

我发现,该应用可以在应用启动时捕获通知,或者用户通过一条消息录制。

App use

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler  

为此。

但是如果设备收到两个或更多通知,那么在点击其中一个后,所有这些通知都会丢失(app只捕获一个)。或者,如果用户突然删除推送通知。

这样可以保存每个通知(当然还有我的应用程序)?

2 个答案:

答案 0 :(得分:1)

在AppDelegate类中有一个方法application didReceiveRemoteNotification:。您可以使用它来跟踪应用程序收到的所有通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {

//Track your notifications.
//Save your notifications.

}

答案 1 :(得分:1)

APNS架构按设计仅存储最新的推送通知。 这是因为向客户端提供推送通知不可靠,设备可能处于脱机状态,用户可能拒绝接收推送通知,网络端口被阻止或其他几个原因。

这种仅保留最新通知的行为称为'合并通知'。 更多信息: APNS Architecture

在客户端,行为是相同的,一旦启动应用程序,您将只在您的字典中只有上次收到的通知中的有效负载。有效载荷不会叠加。