在Firebase云消息传递中,iOS是否有替代ttl“生存时间”?

10
我正在使用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) => {})
2个回答

7
我认为您正在寻找apns-expiration

一个以秒为单位(UTC)表示的UNIX时期日期。此标头标识通知不再有效且可以被丢弃的日期。

如果此值为非零,则APNs会存储通知并尝试至少发送一次,如有必要则重复尝试发送。 如果该值为0,则APNs将视通知为立即过期,并且不会存储通知或尝试重新发送它。

这在FCM文档中的ttl示例中可以看到:

{
  "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"
      }
    }
  }
}

TTL 和 APNS-Expiration 有什么区别? - Hamza Muazzam
1604750400秒或毫秒是多少,为什么它的格式与TTL:4500s不同? - Hamza Muazzam
1604750400 等于 4500 秒吗? - Hamza Muazzam
1
@HamzaMuazzam 这是Unix时间。专门针对APNS。 - AL.

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接