当前位置:  开发笔记 > Android > 正文

适用于iOS和Android的FCM远程通知负载

如何解决《适用于iOS和Android的FCM远程通知负载》经验,为你挑选了1个好方法。

我们使用FCM为iOS和Android发送远程通知.以下是我们从后端发送的有效负载.

options = {
     notification: {
          title: "title",
          body:  body,
          sound: 'default'
     },
    priority: "high",
    content_available: true,
    data: {
       type: 'type',
       id: id,
    }
}

这适用于ios和android.但由于某种原因,android方面我们需要发送title,body并且sound对于data有效负载中的密钥而言需要删除notification有效负载.

现在,当应用程序未处于活动状态时,通知未收到ios端,横幅通知未到达但数据在应用处于活动状态时正在接收.我们在iOS方面需要横幅广告.

这个notification关键是banner在iOS中显示的mandetory 吗?

如何为iOS和Android使用相同的有效负载.

options = {

priority: "high",
content_available: true,
data: {
      title: "title",
      body:  body,
      sound: 'default'
      type: 'type',
      id: id,
     }
}

还尝试添加各种组合content_availablepriority键.通过所有FCM文档,它仍然混淆.帮助/建议表示赞赏.



1> AL...:

为FCM添加了最新功能,该功能提供了为特定平台提供特定参数的选项,称为Platform Overrides:

跨平台自定义消息

FCM v1 HTTP协议发送的消息可以包含两种类型的JSON密钥对:

接收消息的所有应用程序实例将解释的一组通用键。

特定于平台的键块仅由在指定平台上运行的应用程序实例解释。

特定于平台的块使您可以灵活地针对不同平台自定义消息,以确保在收到消息后正确处理它们。在许多情况下,在给定消息中同时使用公共密钥和特定于平台的密钥都是有意义的。

何时使用通用键

每当您在所有平台(iOS,Android和Web)上定位应用程序实例时

当您向主题发送消息时

无论平台如何,所有应用程序实例都会解释的公用密钥是message.notification.title,message.notification.body和message.data。

何时使用平台专用键

当您只想将字段发送到特定平台时

除公用密钥外,还发送平台特定的字段

每当您只想将值发送到特定平台时,请不要使用公用密钥。使用平台特定的键块。例如,要将通知仅发送到iOS和Web,而不发送给Android,则必须使用两个单独的键块,一个用于iOS,另一个用于Web。

使用特定的传递选项发送邮件时,请使用特定于平台的密钥进行设置。您可以根据需要在每个平台上指定不同的值。但是即使您希望在平台之间设置基本相同的值,也必须使用平台特定的键。这是因为每个平台对值的解释都略有不同-例如,将生存时间在Android上设置为以秒为单位的到期时间,而在iOS上将其设置为到期日期。

示例:带有特定于平台的传递选项的通知消息

以下v1发送请求将通用通知标题和内容发送到所有平台,但还会发送一些特定于平台的替代。具体来说,请求:

为Android和Web平台设置了较长的生存时间,同时将APN(iOS)消息优先级设置为较低的设置

设置适当的键以定义用户在Android和iOS上点击通知的结果-分别为click_action和category。

{
  "message":{
     "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
     "notification":{
       "title":"Match update",
       "body":"Arsenal goal in added time, score is now 3-0"
     },
     "android":{
       "ttl":"86400s",
       "notification"{
         "click_action":"OPEN_ACTIVITY_1"
       }
     },
     "apns": {
       "headers": {
         "apns-priority": "5",
       },
       "payload": {
         "aps": {
           "category": "NEW_MESSAGE_CATEGORY"
         }
       }
     },
     "webpush":{
       "headers":{
         "TTL":"86400"
       }
     }
   }
 }

有关消息主体中特定于平台的块中可用键的完整详细信息,请参见HTTP v1参考文档。有关构建包含消息正文的发送请求的更多信息,请参见构建发送请求。

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有