如何在通知FCM android中获取数据

时间:2017-12-01 10:56:15

标签: java android firebase firebase-cloud-messaging

"notification":{  
      "title":"[add title]",
      "body":"[add your message]",
      "badge":11
   }

在我的FCM中发送通知对象中的徽章

如何获得

PS。 titlebody我可以得到它,但我无法获得徽章

谢谢!

4 个答案:

答案 0 :(得分:1)

你需要获得"徽章"像jsonObject.getInt这样的int("徽章")。

答案 1 :(得分:1)

您可以从以下方法中检索数据

 @Override
 public void onMessageReceived(RemoteMessage remoteMessage) {

    Map<String, String> data = remoteMessage.getData();
    String title = data.get("title").toString();
    String message = data.get("body").toString();
    String message = data.get("badge").toString();
}

答案 2 :(得分:0)

你可以通过 - :

来做到
jsonObject.getInt("badge").

答案 3 :(得分:0)

根据doc,您必须以data类型发送通知,以发送/接收自定义参数。你必须从像

这样的服务器发送
"data":{  
      "title":"[add title]",
      "body":"[add your message]",
      "badge":"11"
   }

在接收方,您可以解析如下:

 @Override
        public void onMessageReceived (RemoteMessage remoteMessage){
            super.onMessageReceived(remoteMessage);
            Log.d(TAG, "From: " + remoteMessage.getFrom());
            // Check if message contains a data payload.
            if (remoteMessage.getData().size() > 0) {
                Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());

                try {
                    Map<String, String> map = remoteMessage.getData();

                    handleDataMessage(map);

                } catch (Exception e) {
                    Log.e(TAG, "Exception: " + e.getMessage());
                }
            }

        }

        private void handleDataMessage(Map<String,String> json){
            Log.e(TAG, "push json: " + json.toString());

            try {

                String title = json.get("title");
                String message = json.get("body");
                String badge = json.get("badge");

              // Display notication depends on received data


            } catch (Exception e) {
                Log.e(TAG, "Exception: " + e.getMessage());
            }
        }