我只是想问一下如何确定在静音推动中采取的行动:
这是我发给客户的aps:
aps
{
content-available: 1
}
我现在的问题是当我添加type:" Order_Update"要确定静默推送是针对订单更新,它会显示警报通知
答案 0 :(得分:68)
有几种选择!让我们花一点时间来了解所有不同的有效载荷及其使用情况。
简单有效负载
显示在通知中心:是
唤醒app执行后台任务:否
{
"aps" : {
"alert" : "You received simple notification!",
"badge" : 1,
"sound" : "default"
}
}
自定义通知声音的有效负载
显示在通知中心:是
唤醒app执行后台任务:否
Step 1
:在您的应用包中添加自定义通知声音文件(仅限.wav或.aiff扩展名。例如notification.wav)。
Step 2
:如下所示配置有效负载以播放自定义声音
{
"aps" : {
"alert" : "It's a custom notification sound!",
"badge" : 1,
"sound" : "notification.wav"
}
}
使用自定义有效负载进行通知
显示在通知中心:是
唤醒app执行后台任务:否
{
"aps" : {
"alert" : "It's a 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
。
显示在通知中心:是
唤醒app执行后台任务:是
{
"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
,请参阅Apple's documentation。我希望这能为您提供所有必要的信息。快乐的编码:)
答案 1 :(得分:0)
据我了解,您希望在有效负载内部有额外数据,因此您可以确定推送通知类型是什么,或者需要处理哪些操作。
为此编辑您的有效负载:
$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;
}
}
希望这能解决你的问题!
答案 2 :(得分:0)
另请检查 apns-push-type
(watchOS 6 及更高版本需要;推荐用于 macOS、iOS、tvOS 和 iPadOS)此标头的值必须准确反映通知负载的内容。如果存在不匹配,或者所需系统上缺少标头,APN 可能会返回错误、延迟通知的传递或完全丢弃它。
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns