2012-11-07 5 views
3

J'utilise la bibliothèque PushSharp pour envoyer une notification push depuis mon application.PushSharp: notification Push Android GCM reçue sans message push

PushService push = new PushService(); 
var reg_id_d = "APA91bETd-LsqnZjA-HKrnBOY3FbEhmWchpiwuhRkiv4gUdGDuvwDRB7YURICZ131XppDAUNUBLGe_vEPkQ-JR8UaVX7Y-NCkEfastCBLIYcUoFtt5cPafeKXHywi0WGDYW33ZQqr3oy"; 
var project_id_d = "482885626272"; 
var api_key_d = "AIzaSyAbh7R5KQR3KM7W_y-yS-Ao-JNiihNz7tE"; // "AIzaSyDcKfuW77GTwA46L6sqD41YhGf2j5S8o2w"; 
var package_name_d = "com.get.deviceid"; 

push.StartGoogleCloudMessagingPushService(new GcmPushChannelSettings(project_id_d, api_key_d, package_name_d)); 
push.QueueNotification(NotificationFactory.AndroidGcm() 
       .ForDeviceRegistrationId(reg_id_d) 
       .WithCollapseKey("NONE") 
       .WithJson("{\"alert\":\"Alert Text!\",\"badge\":\"1\"}")); 

Je reçois une notification sur mon appareil, mais avec un message vide ..

J'ai essayé avec le code sever disponible en C# pour envoyer une notification push GCM, mais obtenir même problème d'avoir un message vide.

J'ai essayé d'utiliser PHP pour envoyer une notification. et ça fonctionne comme prévu. Donc, je ne suis pas sûr de ce qui ne va pas dans mon code ci-dessus. Quelqu'un peut-il m'aider s'il vous plaît à ce sujet?

Répondre

1

J'ai rencontré le même problème, où j'ai reçu un message vide. Mon code était un peu différent et j'utilisait différentes bibliothèques: le client a été enveloppé avec PhoneGap pushPlugin, et le code du serveur est la suivante:

... 
// com.google.android.gcm.server.Sender.Sender(String key)‬ 
gcmSender = new Sender(androidAPIkey); 
// com.google.android.gcm.server.Message 
Message message = new Message.Builder().addData("alert", "test message" /*notif.getAlert()*/).build(); 
Result result = gcmSender.sendNoRetry(message, /* device token */ notif.getToken()); 
nr.add(result, notif.getToken()); 
... 

La raison pour laquelle mes messages où vide est dû au fait que PhoneGap cherche "message", "msgcnt" ou "soundname" en analysant les extras de l'intention. Alors, ce fut la solution dans mon cas:

Message message = new Message.Builder().addData("message", notif.getAlert()).build(); 

Espérons que cela aidera quelqu'un

+1

A travaillé pour moi ! thanx – Marwijn

+0

avec plaisir .. – Yaniv

0

changement alerte à un message, S'il vous plaît voir le code ci-dessous pour votre référence:

 ////--------------------------- 
     //// ANDROID GCM NOTIFICATIONS 
     ////--------------------------- 
     ////Configure and start Android GCM 
     ////IMPORTANT: The API KEY comes from your Google APIs Console App, under the API Access section, 
     //// by choosing 'Create new Server key...' 
     //// You must ensure the 'Google Cloud Messaging for Android' service is enabled in your APIs Console 
     push.RegisterGcmService(new GcmPushChannelSettings("senderid", "apikey", "com.xx.m")); 
     //Fluent construction of an Android GCM Notification 
     //IMPORTANT: For Android you MUST use your own RegistrationId here that gets generated within your Android app itself! 
     push.QueueNotification(new GcmNotification().ForDeviceRegistrationId("regid") 
           .WithCollapseKey("score_update") 
      .WithJson("{\"message\":\"syy!\",\"badge\":7,\"sound\":\"sound.caf\"}") 
      .WithTimeToLive(108) 
      ); 
Questions connexes