【问题标题】:Not getting Pubnub payload in bundle from Notification tray. When app is killed未从通知托盘中获取捆绑包中的 Pubnub 有效负载。当应用程序被杀死时
【发布时间】:2021-03-17 05:45:22
【问题描述】:

我在我的一个项目中集成了 pubnub API。我正在尝试获取我在有效负载中发送的数据包。我为推送通知添加了 FCM。我在所有情况下都会收到推送通知,但在应用程序被杀死或在后台时没有收到捆绑数据。应用在前台时已经获取有效载荷对象,但在应用处于后台或被杀时未获取任何数据。

有效载荷 1:

{
   "pn_gcm": {
   "notification": {
   "title": "Barack Obama",
   "body": "12",
   "channelName": "Hell 4_656"
   }
 },
"firstName": "Barack",
"lastName": "Obama",
"displayName": "Barack Obama",
"profileImageUrl": "abcURL",
"userId": "173",
"type": "sender",
"time": "1615958943297",
"message": "12"
}

有效载荷 2:

{
pn_gcm={
  notification={
  title=BarackObama,
  body=Hello,
  image=Hell4_656
  }
  },
  firstName=Barack,
  lastName=Obama,
  displayName=BarackObama,
  time=1615958740553,
  type=sender,
  message=Hello,
  profileImageUrl=abcURL,
  userId=173
}

当应用程序在前台时我得到通知对象,但当应用程序在后台或被杀死时没有得到任何通知对象。(获取一些 FCM 默认对象)

我试图在从通知托盘启动应用程序时获取通知对象

回答 像这样制作 JSON 有效负载:

  {
"pn_gcm": {
  "notification": {
    "title": "Barack Obama",
    "body": "18"
  },
  "body": {
    "channelName": "Hell 5_657",
    "firstName": "Barack",
    "lastName": "Obama",
    "displayName": "Barack Obama",
    "profileImageUrl": 
    "http://3.137.127.137/quiqle/uploads/profile/1615523786_4866.jpg",
    "userId": "173",
    "type": "sender",
    "time": "1615965488916",
    "message": "18"
  }
}
}

【问题讨论】:

    标签: android firebase-cloud-messaging pubnub


    【解决方案1】:

    您需要添加data 以及您希望通过推送到pn_gcm 接收的信息。 pn_(gcm|apns) 以外的信息(包括 tjpse)将作为常规消息传递

    消息可以如下:

    使用notification:

    {
       "pn_gcm":{
          "notification":{
             "title":"Chat invitation",
             "body":"John invited you to chat",
             "sound":"default"
          }
       }
    }
    

    或者使用data:

    {
      "pn_gcm" : {
        "data" : {
          "room" : "Portugal vs Denmark",
          "body" : "great match!"
        }
      }
    }
    

    或两者兼有:

    {
      "pn_gcm" : {
        "notification": {
          "title":"Portugal vs Denmark",
          "body":"great match!"
        },
        "data" : {
          "room" : "Portugal vs Denmark",
          "body" : "great match!"
        }
      }
    }
    

    关于datanotification之间的区别的解释,请阅读官方FCM文档About FCM messages

    另请参阅: Why are my FCM push notifications not working?

    【讨论】:

    • 你能详细说明你的答案吗?
    • 我已将数据对象添加到 json 文件但未在 Bundle 中获取它。
    • 是的,我在添加数据对象后获取数据。谢谢!!
    • 它只适用于notification。请务必阅读我添加的 FCM 文档链接。 notification types should display by default by the Android OS, where as data` 要求您实现一种方法来接收消息并且您的代码进行显示。至少这是我上次阅读这些文档时的记忆。
    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多