【问题标题】:Does firebase set apns-push-type header automatically?firebase 会自动设置 apns-push-type 标头吗?
【发布时间】:2020-01-25 19:50:13
【问题描述】:

根据 APNS 的 changes in iOS 13,静默推送通知需要额外的标头 (apns-push-type)。

我使用 Firebase 作为后端和移动设备之间的中介,我想知道当 content-available 属性设置为 true 时,Firebase 是否会自动设置提到的标头。

正如 here 所提到的,这已经在 AWS 中发生了。

如果这个标头被传递给静默推送通知,我可以在 iOS 中以某种方式检查吗?

我已经在我的设备上进行了测试,在我将 Firebase 依赖项更新到最新版本后一切正常,即使在后台也是如此。但是我仍然没有任何证据表明标题的外观。

【问题讨论】:

  • 嗨@Nominalista,目前fireabase 不提供有关iOS 13 更新的任何文档。你可以联系他们的支持,我猜他们添加了这个标题,你可以在 iOS 13 中检查。我会检查我的结果并更新你。
  • 谢谢,请告诉我,什么时候你会发现。

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


【解决方案1】:

在深入研究并检查了一些开源项目如何更新他们的代码之后,这里有一个关于如何将 apns-push-type 添加到 Firebase 管理节点的示例:

(我正在使用多播,因此您的解决方案可能会有所不同。)

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);

我只有少数通知失败,因此我无法完全确认问题是否已解决。

【讨论】:

    【解决方案2】:

    Firebase 支持响应了我的请求。

    截至今天,如果设置了 content_available,Firebase 不会自动设置 apns-push-type 标头。应该通过ApnsConfig 中的标头设置它。 他们还建议更新到最新的管理 SDK 版本。

    我另外设置了apns-priorityheader。不幸的是,所有步骤都没有解决我的问题。

    【讨论】:

    • 你试过用下划线吗?喜欢apns_push_type?请注意,Apple 接受 content-available 属性,而 Firebase 接受 content_available
    【解决方案3】:

    这是我用来向 ios 设备发送后台通知的内容。请注意,我设置“contentAvailable”而不是“content-available”,所有内容都需要是一个字符串。

    "apns": {
        "headers": {
          "apns-push-type": "background",
          "apns-priority": "5"
        },
        "payload": {
          "aps":{
            "contentAvailable": true
          }
        }
      }
    

    我正在使用 sendMulticast() 方法, 完整示例如下所示:

    var message = {
      "tokens": tokensArray,
      "data": {
        "info":"someInfo"
      },
      "apns": {
        "headers": {
          "apns-push-type": "background",
          "apns-priority": "5"
        },
        "payload": {
          "aps":{
            "contentAvailable": true
          }
        }
      }
    };
    
    await messaging.sendMulticast(message)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多