设置 Fcm 通知优先级 - Azure 通知中心

Setting Fcm Notification Priority - Azure Notification Hub

我正在尝试在 C# SDK 中为 Fcm 通知负载设置高优先级,以便从后端将其发送到移动应用程序。 根据 Fcm 文档,Json Paylod 应如下所示:

{
  "message":{
    "topic":"subscriber-updates",
    "notification":{
      "body" : "This week's edition is now available.",
      "title" : "NewsMagazine.com",
    },
    "data" : {
      "volume" : "3.21.15",
      "contents" : "http://www.news-magazine.com/world-week/21659772"
    },
    "android":{
      "priority":"normal"
    },
    "apns":{
      "headers":{
        "apns-priority":"5"
      }
    },
    "webpush": {
      "headers": {
        "Urgency": "high"
      }
    }
  }
}

Found here

在我的代码中,我尝试了使用 Azure SDK 的不同方法。 1

var result = await voipClient.SendFcmNativeNotificationAsync(payload, tag);

将此 json

作为负载
{
   "data":{
      "key":"value"   
},
   "android":{
      "priority":"high"

}

2

var notification = new FcmNotification(payload);
notification.Headers.Add("android", "{\"priority\": \"high\"}");

将我之前发布的广告负载放入

在这两种情况下,我都会收到具有正常优先级的通知。

你知道我哪里出错了吗?

如果您查看 Azure 通知中心文档,您可能会感到困惑,因为它链接到 FCM 文档:FCM 允许以不同的方式构建有效负载,通知中心更为严格。

您应该发送以下负载:

{
   "data":{
      "key1":"value1",
      "key2":"value2",

   },
  "priority":"high"
}

您发送到通知中心的负载实际上是 Firebase 负载中的 "android" 字段。

注: 如果您在通知字段内设置标题如下,则通知中心会自动将优先级设置为

{
  "notification": {
    "title":"any title"
  }
}