我使用admin sdk发送通知。
这是我的有效载荷。我能为Android设置ttl(生存时间),但我不确定如何为iOS设置它。
基本上如果通知无法发送,那么我根本不想重新发送。
const payload = {
notification: {
title: 'New Appointments!',
body: '',
},
data: {},
android: {
ttl: 1000,
},
apns: {
payload: {
aps: {
badge: 1,
"sound":"default"
},
},
},
};
admin.messaging().send(payload).then((response) => {})
答案 0 :(得分:1)
我认为您正在寻找apns-expiration
:
中可以看到这方面的一个例子以星期(UTC)表示的UNIX纪元日期。此标头标识通知不再有效的日期,可以丢弃。
如果此值非零,则APN会存储通知并尝试至少传递一次,如果第一次无法传递通知,则会根据需要重复尝试。如果值为0,则APN会将通知视为立即过期,并且不会存储通知或尝试重新发送通知。
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
"apns":{
"headers":{
"apns-expiration":"1604750400"
}
},
"android":{
"ttl":"4500s"
},
"webpush":{
"headers":{
"TTL":"4500"
}
}
}
}
答案 1 :(得分:0)
我遇到的问题格式错误,因为我正在阅读错误的文档。
https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#ApnsConfig
"apns":{
headers:{
"apns-expiration":"1604750400"
}
}