【问题标题】:Catch push notification by app通过应用捕获推送通知
【发布时间】:2015-05-27 16:31:33
【问题描述】:

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

我发现,如果应用启动或用户被一条消息点击,该应用可以捕获通知。

应用使用

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

为此。

但是,如果设备收到两个或更多通知,则在点击其中一个后,所有通知都将丢失(应用程序仅捕获一个)。或者如果用户突然删除推送通知。

那么它是保存每个通知的方法吗(当然与我的应用程序有关)?

【问题讨论】:

  • 如果用户删除了推送通知的注册,您的应用将无法获取它们。您可以考虑变通方法,具体取决于您的应用的使用情况,并创建一个您可以通过代码触发的自定义通知横幅。

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


【解决方案1】:

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

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

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

}

【讨论】:

    【解决方案2】:

    根据设计,APNS 架构仅存储最新的推送通知。 这是因为向客户端传递推送通知不可靠、设备可能处于离线状态、用户可能拒绝接收推送通知、网络端口被阻止或其他一些原因。

    这种只保留最新通知的行为称为“合并通知”。 更多信息在这里: APNS Architecture

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多