无声推送通知有效负载

我只想问一个问题,我怎么能确定在一个无声的推动下要做什么?

这是我发给客户的aps:

aps { content-available: 1 } 

我现在的问题是,当我添加types:“Order_Update”,以确定静默推送是为订单更新它显示一个警报通知

有几个选项,让它乘坐了解不同的有效载荷和使用情况。

简单的有效负载

显示在通知中心:是的

醒来的应用程序来执行后台任务:没有

 { "aps" : { "alert" : "You received simple notification", "badge" : 1, "sound" : "default" } } 

用自定义通知声音加载

显示在通知中心:是的

醒来的应用程序来执行后台任务:没有

Step 1 :在应用程序包中添加自定义通知声音文件(仅限.wav或.aiff扩展名,例如notification.wav)。

Step 2 :修改你的有效载荷如下,它将播放自定义声音

 { "aps" : { "alert" : "Its custom notification sound.", "badge" : 1, "sound" : "notification.wav" } } 

通知自定义有效载荷

显示在通知中心:是的

醒来的应用程序来执行后台任务:没有

 { "aps" : { "alert" : "Its Notification with custom payload.", "badge" : 1, "content-available" : 0 }, "data" :{ "title" : "Game Request", "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" }, } 

这里的data字典可以保存自定义的信息。 它也将显示为正常通知,并显示警报消息“通知自定义有效内容”。

正常静音通知

它“不会在通知栏中显示通知警报,但它只会通知您的应用程序有一些新的数据可用,当你想推新的内容。

显示在通知中心:没有

醒来的应用程序来执行后台任务:是的

 { "content-available" : 1 } 

无声通知与自定义有效载荷

这里有一个神奇的显示通知警报,以及在后台唤醒你的应用程序的一些任务(注意:如果它的后台运行没有被用户明确杀害)。 只是在有效载荷中添加了一个额外的参数"content-available" : 1

显示在通知中心:是的

醒来的应用程序来执行后台任务:是的

 { "aps" : { "alert" : "Notification with custom payload", "badge" : 1, "content-available" : 1 }, "data" :{ "title" : "Game Request", "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" } } 

根据您的应用程序要求使用其中的任何一个。 对于background app refresh请参阅苹果文档 我希望它给你所有需要的信息。 快乐编码:)

据我所知,你需要有效载荷内的额外数据,所以你可以确定什么推送通知types,或者什么行动需要处理。

为了编辑您的有效载荷为:

  $body = array( 'content-available' => 1, 'sound' => '' ); $payload = array(); $payload['aps'] = $body; $payload['action'] = 'order_update'; 

然后在你的iOS代码中:

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSString *action = userInfo["action"]; if([userInfo[@"aps"][@"content-available"] intValue]== 1 && [action isEqualToString:@"order_update") //order update notification { //handle Your Action here return; } } 

希望这可以解决你的问题!