wake-up-neo.com

Ruft den Wert von RemoteMessage von der FCM-Methode onMessageReceived ab

Ich bin umgezogen gcm to fcm für Push-Benachrichtigung. aber wie bekomme ich Bündeldaten von RemoteMessage erhalten onMesssageReceived-Methode.

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

Sagen Sie mir bitte, wie ich die Remotemessage analysiere, um den gesamten Wert der Benachrichtigung zu erhalten.

MEINE PAYROL

{
"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"
]
}
22
Jatin Patel

In FCM haben Sie RemoteMessage anstelle von Bundle erhalten.

Unten ist die Art und Weise, wie ich in meiner Anwendung verwendet habe, in der Daten meine RemoteMessage sind

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();

Unten sind meine Benachrichtigungsdaten aufgeführt, die ich vom Server sende

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

Sie müssen also jedes einzelne Feld gemäß Ihrer Antwort analysieren. Nach dem Debuggen des Codes erhalten Sie eine Karte in Ihrer RemoteMessage und wandeln diese Felder in die entsprechenden Datentypen um, da alle diese Daten als Zeichenfolge vorliegen.

27
Drup Desai

Hier ist das Code-Snippet, das ziemlich selbsterklärend ist.

Sie erhalten die Daten in Form der Karte

public void onMessageReceived(RemoteMessage remoteMessage)
        {
            Log.e("dataChat",remoteMessage.getData().toString());
            try
            {
                Map<String, String> params = remoteMessage.getData();
                JSONObject object = new JSONObject(params);
                Log.e("JSON_OBJECT", object.toString());
          }
       }

Stellen Sie sicher, dass Sie vom Server aus Daten im richtigen Format senden, d. H. Im "Daten" -Schlüssel

hier ist die Demo-Json-Datei

{
  "to": "registration_ids",
  "data": {
    "key": "value",
    "key": "value",
    "key": "value",
    "key": "value"
  }
}
42
Pritish Joshi