进行研究以尝试选择通知类型的方向。我希望能够通知我的应用程序有新的数据需要刷新,但不会打扰用户弹出/通知消息。我们的想法是,如果应用程序处于打开或关闭状态,并且当此“特殊”消息到达并且应用程序处于打开状态时它会知道要获取数据,则会发出相同的通知。
我的想法是在apple document的底部发送一个空的aps字典,例如示例5。
我的问题是收到此类邮件后会发生什么?它说它会清除徽章,但会向用户显示某种默认消息吗?或者这会完全沉默吗?
跟进问题,除了检查应用程序是否正在运行并告诉我的服务器开始发送“特殊”有效负载(我想通过推送处理所有内容)之外,还有更好的方法吗?
答案 0 :(得分:9)
如果字典中没有标记,没有警报,也没有指定声音(对于“aps”键),则不会显示默认消息,它将完全静音。
再次查看您引用的文档中的示例5。 aps可以为空,您可以使用“acme2”键指定您想要的任何自定义数据。 “acme2”数据是服务器的“特殊”有效负载可以驻留在JSON有效负载中的示例。
您无需告知服务器您的应用正在运行。无论您的应用程序是否正在运行,服务器都可以通过APNS发送特殊有效负载,并且您将以两种方式之一接收该特殊有效负载(当然假设推送到达设备......这是无法保证的):
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self application:application didReceiveRemoteNotification:[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]];
}