【问题标题】:Firebase iOS notifications not received on device设备未收到 Firebase iOS 通知
【发布时间】:2020-11-30 15:22:59
【问题描述】:

我们有两种 firebase 通知,一种带有 notification 字段,另一种没有(系统使用此字段显示横幅)。

with 总是被接收,without 在某一行尝试后被接收,然后停止接收。

这些是有效载荷:

总是收到的:

{
  "content_available": true,
  "data": {
    "pushCategory": "ALEXA",
    "body": "body",
    "message": "message",
    "title": "status/update",
    "updateStatus": {
      "operationId": "7fc0e1ff-cc0d-4045-8b30-69710bf80c24",
      "status": 0,
      "action": "makecoffee",
      "description": "",
      "stock": {
        "remaining": "91",
        "threshold": "10",
        "depletion": false
      }
    }
  },
  "notification": {
    "title": "title",
    "body": "body msg"
  },
  "apns": {
       "headers": {
         "apns-priority": "10"
       }
    },
  "to": "----"
}

不是随机收到的:

{
  "content_available": true,
  "data": {
    "pushCategory": "ALEXA",
    "body": "body",
    "message": "message",
    "title": "status/update",
    "updateStatus": {
      "operationId": "7fc0e1ff-cc0d-4045-8b30-69710bf80c24",
      "status": 0,
      "action": "makecoffee",
      "description": "",
      "stock": {
        "remaining": "91",
        "threshold": "10",
        "depletion": false
      }
    }
  },
  "apns": {
       "headers": {
         "apns-priority": "10"
       }
    },
  "to": "----"
}

始终会收到直接使用 APNS 服务器且不带 alert 字段的等效通知。 (alert 字段是告诉系统显示横幅的字段)

我联系了 Firebase 支持,但问题一直存在,您知道可能是什么问题吗?

【问题讨论】:

  • 第一个是用户看到的通知吗?第二个是无声通知?我的意思是为什么content_available 对他们俩都是真的?
  • 如果第二个是静默通知,那么 tl;dr 静默通知的传递机会远小于非静默通知

标签: ios firebase push-notification firebase-cloud-messaging


【解决方案1】:

我从未使用过 Firebase。 我不确定您的有效载荷中的apns-priority 是否有效果。我只是不知道:

  "apns": {
       "headers": {
         "apns-priority": "10"
       }
    },

我认为你必须摆脱它,只使用 priority 字段本身。让 Firebase 自己映射字段...

Firebase docs,查找priority 参数的描述以及datanotification 的不同行为方式:

设置消息的优先级。有效值为“正常”和 “高的。”在 iOS 上,这些对应于 APN 优先级 5 和 10。

默认情况下,通知消息以高优先级发送,并且 数据消息以正常优先级发送。正常优先级优化 客户端应用程序的电池消耗,除非 需要立即交货。 对于具有正常优先级的邮件, 应用可能会收到未指定延迟的消息。

当以高优先级发送消息时,它会立即发送,并且 该应用可以显示通知。

data 的有效载荷最终以 firebase 优先级“正常”结束,转换为 apns-priority 5

对于notification,“高”的firebase 优先级转换为apns-priority of 10

有关 apns 优先级的更多信息,请参阅apns-docs

通知的优先级。如果省略此标头,APNs 设置 通知优先级为 10。

指定 10 立即发送通知。

指定 5 根据电源考虑发送通知 用户的设备。

【讨论】:

  • 您好,感谢您的回答,即使我使用:"priority": "high" 更改有效负载并删除了 apns 字段,结果仍然相同。
猜你喜欢
  • 2021-12-10
  • 2018-08-09
  • 2016-09-17
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 2018-09-06
  • 2016-10-24
  • 2017-12-24
相关资源
最近更新 更多