带有空aps字典的iOS推送通知

做研究试图为通知typesselect一个方向。 我希望能够通知我的应用程序,有新的数据刷新,但不打扰用户popup/通知消息。 这个想法是,如果应用程序打开或closures,当这个“特殊”消息到达并且应用程序打开时,相同的通知就会消失。

我的想法是在这个苹果文档的底部发送一个空的aps字典,如例5。

我的问题是收到这种types的消息会发生什么? 它说,它会清除徽章,但会向用户显示某种默认的消息? 或者这会完全沉默?

后续问题,除了检查应用程序是否正在运行,并告诉我的服务器开始发送“特殊”有效载荷(我想通过推送处理所有内容)之外,还有更好的方法吗?

如果字典中没有徽章,没有提示,也没有声音(对于“aps”键),则默认消息将不会出现,并且将完全保持沉默。

再看看你引用的文档中的例子5。 aps可以是空的,你可以指定你想要的任何自定义数据,就像他们使用“acme2”键一样。 “acme2”数据是您的服务器的“特殊”有效载荷可以驻留在JSON有效载荷内的示例。

您不需要告诉服务器您的应用程序正在运行。 服务器可以通过APNS发送特殊的有效负载,无论你的应用程序是否在运行,你将以两种方式之一(假设推送到达设备,但不能保证):

  1. 如果你的应用程序在前台,那么iOS将不会拦截通知。 您将在您的应用程序委托的应用程序中收到通知:didReceiveRemoteNotification:方法(前提是您的应用程序委托会覆盖该方法)。
  2. 如果iOS拦截了您的推送,那么当您select启动您的应用程序来响应通知时,您将需要检索应用程序委托的应用程序didFinishLaunchingWithOptions:方法中的“推送字典”,如下例所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self application:application didReceiveRemoteNotification:[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]]; }