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

Ste*_*zzo 4 notifications azure

我正在尝试在 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"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在这里找到

在我的代码中,我尝试了不同的方法来使用 Azure SDK 来做到这一点。 1

var result = await voipClient.SendFcmNativeNotificationAsync(payload, tag);
Run Code Online (Sandbox Code Playgroud)

将此json作为有效负载

{
   "data":{
      "key":"value"   
},
   "android":{
      "priority":"high"

}
Run Code Online (Sandbox Code Playgroud)

2

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

将广告有效载荷放在我之前发布的那个

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

你知道我哪里出错了吗?

Dan*_*cci 5

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

您应该发送以下有效负载:

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

   },
  "priority":"high"
}
Run Code Online (Sandbox Code Playgroud)

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

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

{
  "notification": {
    "title":"any title"
  }
}
Run Code Online (Sandbox Code Playgroud)