0

J'obtiens pushnotification de PubNub. Mais tout en obtenant pushnotification il n'a aucune donnée à lire dessus.Impossible de lire les données à partir de la notification GCM Push à l'aide de PubNub

1) Je publie un message à PubNub comme suit:

JSONObject data = new JSONObject(); 
    JSONObject aps = new JSONObject(); 
    //Sample data 
    try { 
     data.put("data", "Android"); 
     aps.put("aps", "iOS"); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    Map<String, Object> payload = new HashMap<>(); 
    payload.put("pn_apns", aps); 
    payload.put("pn_gcm", data); 
    payload.put("pn_debug", true); 

    pubnub.publish() 
      .message(payload) 
      .channel("Activity_" + prefs.getActivityDetails().activity_id) 
      .async(new PNCallback<PNPublishResult>() { 
       @Override 
       public void onResponse(PNPublishResult result, PNStatus status) { 
        Log.i("", ""); 
       } 
      }); 

Cette demande est la réussite, je reçois le code d'état 200

2) Je reçois auditeur classe GcmListenerService. Mais si vous voyez l'objet Bundle 'data' n'a pas de clé appelée 'message' pour lire ce que nous avons passé. S'il vous plaît voir la capture d'écran ci-dessous.

Y at-il un problème sur ma demande de publication? 3) Ma console de débogage affiche un message de réussite sur les périphériques ayant reçu avec succès la notification push qui a été enregistrée pour les messages Push sur le canal cible pour chaque service Push. '"Périphériques détectés pour les notifications push: 0 gcm: 2 mpns: 0"' Comme illustré ci-joint. enter image description here

Pls me faire savoir où je me trompe & me corriger pls.

+1

Je peux voir la capture d'écran que l'objet MMap dans l'objet de données a une taille de 3. Pouvez-vous pour montrer les valeurs? –

+0

Il ne semble pas y avoir de contenu dans votre pn_gcm. Vous devez inclure le format de données requis par GCM: '" pn_gcm ": {" data ": {" a ":" 1 "}}' '. Pour plus de détails, [voir les docs] (https://www.pubnub.com/docs/android-java/mobile-gateway#Publishing_to_GCM). –

+0

En fait, vous avez ajouté des données, mais pouvez-vous sortir le 'payload' avant de le publier? –

Répondre

1

J'ai reçu une réponse. Le problème est sur la bibliothèque JSONObject. Besoin d'utiliser JsonObject au lieu de JSONObject.

morceau de l'échantillon de code pour la charge utile:

JsonObject payload = new JsonObject(); 
JsonObject androidData = new JsonObject(); 
androidData.addProperty(“Id”, 1); 
androidData.addProperty(“Name”,“Marcelo”); 
JsonObject data = new JsonObject(); 
data.add(“data”, androidData); 
payload.add(“pn_gcm”, data); 
payload.addProperty(“pn_debug”, true); 
System.out.println("before pub: " + payload);