在稍微研究了一下并查看了一些开源项目更新其代码的方式后,以下是一个示例,展示如何向Firebase Admin Node添加apns-push-type
:
(我正在使用多播,因此您的解决方案可能会有所不同。)
const message = {
priority: 'high',
sound: 'default',
notification: {
title: 'Message Title',
body: 'Message Body',
},
android: { ... },
apns: {
headers: { // Add these 3 lines
'apns-push-type': 'alert',
},
payload: {
aps: {
badge: 1,
sound: 'default',
},
},
},
tokens: [ ... ],
};
admin.messaging().sendMulticast(message);
我只收到了一些通知失败的信息,所以我还不能完全确认问题是否已经解决。
这是我用来向iOS设备发送后台通知的内容。请注意,我设置的是"contentAvailable"而不是"content-available",所有内容都必须是字符串。
"apns": {
"headers": {
"apns-push-type": "background",
"apns-priority": "5"
},
"payload": {
"aps":{
"contentAvailable": true
}
}
}
var message = {
"tokens": tokensArray,
"data": {
"info":"someInfo"
},
"apns": {
"headers": {
"apns-push-type": "background",
"apns-priority": "5"
},
"payload": {
"aps":{
"contentAvailable": true
}
}
}
};
await messaging.sendMulticast(message)
content_available
,则Firebase不会自动设置apns-push-type
标头。 应该通过ApnsConfig中的标头进行设置。
他们还建议升级到最新的管理SDK版本。apns-priority
标头。 不幸的是,所有步骤都没有解决我的问题。apns_push_type
这样的?请注意,对于苹果接受 content-available
属性,而 Firebase 则接受 content_available
。 - Nominalista