当前位置: 首页 > 面试题库 >

通过FCM onMessageReceived方法从RemoteMessage获取值

杜俊风
2023-03-14
问题内容

我已经迁移gcm to fcm了推送通知消息。但是我如何从onMesssageReceived方法中接收的RemoteMessage获取捆绑数据。

Old GCM give bundle data onMessageReceiced method but in FCM there is RemoteMessage data.

因此,请告诉我如何解析remotemessage以获取通知的全部价值。

我的薪水

{
"collapse_key":"score_update",
"priority":"high",
"content_available":true,
"time_to_live":108,
"delay_while_idle":true,
"data": 
{ 
    "message": "Message for new task",
    "time": "6/27/2016 5:24:28 PM"
},
"notification": {
    "sound": "simpleSound.wav",
    "badge": "6",
    "title": "Test app",
    "icon": "myicon",
    "body": "hello 6 app",
    "notification_id" : "1140",
    "notification_type" : 1,
    "notification_message" : "TEST MESSAGE",
    "notification_title" : "APP"
  },
"registration_ids": ["cRz9SJ-gGuo:APA91bFJPX7_d07AR7zY6m9khQro81GmSX-7iXPUaHqqcOT0xNTVsOZ4M1aPtoVloLNq71-aWrMCpIDmX4NhMeDIc08txi6Vc1mht56MItuVDdA4VWrnN2iDwCE8k69-V8eUVeK5ISer"
]
}

问题答案:

在FCM中,您收到的是RemoteMessage而不是Bundle。

以下是我在应用程序中使用的方式,其中数据是我的RemoteMessage

Map<String, String> data = remoteMessage.getData()
int questionId = Integer.parseInt(data.get("questionId").toString());
String questionTitle = data.get("questionTitle").toString();
String userDisplayName = data.get("userDisplayName").toString();
String commentText = data.get("latestComment").toString();

以下是我从服务器发送的通知数据

{
  "registration_ids": "",
  "data": {
    "questionId": 1,
    "userDisplayName": "Test",
    "questionTitle": "Test",
    "latestComment": "Test"
  }
}

因此,您必须根据您的响应来解析每个字段。在调试代码后,您将在RemoteMessage中接收到映射,并将这些字段转换为适当的数据类型,因为所有这些数据都以字符串形式出现。



 类似资料:
  • 问题内容: 从Java,我正在Postgresql中使用带有对我的身分列的RETURNING子句的插入来调用准备好的语句。在PG管理员中,它马上回来,但不确定如何从准备好的语句中获取它: 问题答案: 根据javadoc,PreparedStatement继承自Statement,后者包含getResultSet()方法。换句话说,请尝试以下操作: 如果您还有其他问题,请发表评论。

  • 本文向大家介绍JavaScript中无法通过div.style.left获取值的解决方法,包括了JavaScript中无法通过div.style.left获取值的解决方法的使用技巧和注意事项,需要的朋友参考一下 一、问题总结:     样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取。    让元素移动

  • 本文向大家介绍js通过classname来获取元素的方法,包括了js通过classname来获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 原生JS有3种方式来获取元素: 实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的 tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等.

  • 我想通过“id”从我的mongodb获取数据。如果我的id与mongodb中id的值匹配,则它将获取该对象,但其抛出错误为: {“message”:“对于模型“PostMessage”“”的路径“\u id”处的值“s-CoAhDKd”,转换为ObjectId失败}

  • 本文向大家介绍javascript 通过键名获取键盘的keyCode方法,包括了javascript 通过键名获取键盘的keyCode方法的使用技巧和注意事项,需要的朋友参考一下 不废话,直接看代码,需要的根据需求完善。 例:getKeyCode('a') 返回:65 以上这篇javascript 通过键名获取键盘的keyCode方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家

  • 我的API请求:\u HTTPS://myserver/getcaptchaimage?accesstoken=mytoken 响应:验证码图像 标题: 缓存控制私有内容类型图像/png日期2016年7月4日周一09:15:05 GMT服务器Microsoft IIS/7.5传输编码分块X-AspNet-Version 4.0.30319 X-Powered-By ASP。净额 我的代码(http