2016-03-23 2 views
2

платформы IOS посылает JSON полезной нагрузки в следующем формате:Отправить уведомление Broadcast с помощью лазурь для IOS и андроид

{"aps":{"alert":"Notification Hub test notification"}} 

в то время как формат Android полезная нагрузка:

{"data":{"message":"Notification Hub test notification"}} 

Мои SendBroadcastNotification:

public void SendBroadcastNotification(string message) { 

    NotificationHubClient hub = NotificationHubClient 
      .CreateClientFromConnectionString(Constants.NotificationsHubConnectionString, "QiKStayNotificationHub",true); 
    var notify = "{ \"data\" : {\"message\":\"" + message + "\"}}"; 
    var appnotify = "{ \"aps\" : {\"alert\":\"" + message + "\"}}"; 
    var task = hub.SendGcmNativeNotificationAsync(notify); 
    task.Wait(); 
} 

С этого момента я отправляю уведомление на андроид SendGcmNativeNotificationAsync, в частности, я ant, чтобы транслировать его на все устройства.

Так я должен изменить полезную нагрузку формат JSON также

hubClient.SendAppleNativeNotificationAsync(); 
hubClient.SendGcmNativeNotificationAsync(notify); 
+0

SendGcmNativeNotificationAsync будет транслироваться на все устройства Android и SendAppleNativeNotificationA sync будет транслировать на все устройства Apple – Mahesh

ответ

0

При регистрации устройства с уведомлением концентратором вы должны поддерживать платформы пользователя

switch (platform.ToLower()) 
      { 
       case "apns": 
        notificationMessage = "{ \"aps\" : {\"alert\":\"" + message + "\"}}"; 
        break; 
       case "gcm": 
        notificationMessage = "{ \"data\" : {\"message\":\"" + message + "\",\"display\":\"" + title + "\"}}"; 
        break; 
       default: 
        break; 
      } 

или вы можете пользовательского шаблон сообщение

private static async void SendTemplateNotificationAsync() 
{ 
    // Define the notification hub. 
    NotificationHubClient hub = 
     NotificationHubClient.CreateClientFromConnectionString(
      "<connection string with full access>", "<hub name>"); 

    // Sending the notification as a template notification. All template registrations that contain 
    // "messageParam" or "News_<local selected>" and the proper tags will receive the notifications. 
    // This includes APNS, GCM, WNS, and MPNS template registrations. 
    Dictionary<string, string> templateParams = new Dictionary<string, string>(); 

    // Create an array of breaking news categories. 
    var categories = new string[] { "World", "Politics", "Business", "Technology", "Science", "Sports"}; 
    var locales = new string[] { "English", "French", "Mandarin" }; 

    foreach (var category in categories) 
    { 
     templateParams["messageParam"] = "Breaking " + category + " News!"; 

     // Sending localized News for each tag too... 
     foreach(var locale in locales) 
     { 
      string key = "News_" + locale; 

      // Your real localized news content would go here. 
      templateParams[key] = "Breaking " + category + " News in " + locale + "!"; 
     } 

     await hub.SendTemplateNotificationAsync(templateParams, category); 
    } 
} 
+0

Привет Махеш, я хочу передать уведомление, так зачем мне проверять тег pns. Есть ли другой способ, в котором полезная нагрузка json я мог бы добавить еще несколько тегов, аналогично «{\" data \ ": {\" message \ ": \" "+ message +" \ "}}" или у меня есть динамические параметры, которые я могу отправить var dynmicjson = "{'data': {'message': '$ (message)' 'значок': '$ (значок)', {$ (PARAMS)}}} "; – Priyanka

+0

Привет, Приянка, пожалуйста, уточните мой обновленный ответ. – Mahesh

+0

Привет! Я почти такой же подход применяется пользователей вар = (от и в db.Users выбрать новый { u.Name } ); foreach (var user in users) { var notify = "{\" data \ ": {\" message \ ": \" "+ message +" \ ", \" userId \ ": \" "+ user.Name + "\"}} "; var alert = "{\" aps \ ": {\" alert \ ": \" "+ сообщение +" \ "}}"; var task = hub.SendGcmNativeNotificationAsync (notify); – Priyanka

Смежные вопросы