ios - 适用于 iOS 的 Firebase FCM 静默推送通知

标签 ios firebase notifications apple-push-notifications firebase-cloud-messaging

我对 iOS 上的静默通知有疑问。

当我的应用程序在后台运行时,我没有收到 FCM 发送的静默通知。但如果我尝试直接发送到 APNS,则通知已成功接收。

这是发送到 FCM 的 JSON:

{ 
"to" : "<token>",
"priority": "high",
"content_available": true,
"data" : {
  "<key>" : "<string>",
  "<key2>" : "<string>"
}

这是直接发送到 APNS 的 JSON:

{
  "aps": {
    "content-available": 1
  },
  "<key>": "<string>",
  "<key>": "<string>"
}

我已经尝试删除“priority”键,因为我看到有人说如果“content_available”已经设置,我不应该设置优先级。它没有用。

  1. 我在 XCode > Capabilities 中启用了“推送通知”。
  2. 我在 XCode > Capabilities 的后台模式中选中了“远程通知”。
  3. 当应用处于前台时,FCM 通知工作正常,有时当应用处于后台时。

最佳答案

删除"notification"键值对并添加"content_available": true

看起来像这样

{ 
    "to" : "...",
    "priority": "high",
    "content_available": true,
    "data" : {
      ....
    }
}

这应该使其成为静默 APNS,您需要使用相应的 APNS 委托(delegate)方法进行处理。

你需要通过委托(delegate)来处理这个 有关详细信息,请参阅此 firebase 文档:https://firebase.google.com/docs/cloud-messaging/concept-options

关于ios - 适用于 iOS 的 Firebase FCM 静默推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807397/

相关文章:

javascript - 通知在网络扩展 (Firefox) 中不起作用

swift3 - 每周触发通知 Swift 3

ios - 启动时在 AppDelegate 中将 TabBarViewController 设置为 Root View

javascript - 成功登录 firebase 后如何重定向用户?

javascript - Service Worker 仅显示第一个推送通知(来自云消息传递),直到我重新加载 - 工作人员收到消息

php - 当数据库中的特定数据发生更改时使用 php 显示通知

ios - 如何在 iOS Swift 中将点更改为密码字段上的另一个字符

ios - 通过不包含字符串来过滤数组(swift 2)

ios - 如何从命令行从 iOS 8 模拟器中删除应用程序?

angularjs - 如何将 JSON 数组作为 FirebaseArray 导入 Firebase?