2

Я пытаюсь реализовать BackgroundTask для уведомлений о необработанных сообщениях в моих приложениях Windows и Windows Phone 8.1, но он, похоже, не работает. Мне удалось получить тосты на основе push-уведомлений, но, насколько я знаю, необработанное уведомление тихо перемещает данные в приложение, и приложение может отображать уведомление о тосте или обновлять плитку приложения.Использование уведомлений Raw Push в WNS

Я просмотрел образец BackgroundTask и следил за ним точно, но ничего не работает (https://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9).

Вот шаги, которые я взял

  1. создал проект Windows, время выполнения компонента в том же растворе, как и мои другие проекты (Called NotificationServer)
  2. Переименованный класс RawTask.cs и реализован IBackgroundTask и его Run метод
  3. создал метод для создания уведомления тост

    частная пустота SendNotification (строка текста) { XmlDocument toastXml = ToastNotificationManager.GetTemplateContent (ToastTemplateType.ToastText01);

     XmlNodeList elements = toastXml.GetElementsByTagName("text"); 
         foreach (IXmlNode node in elements) 
         { 
          node.InnerText = text; 
         } 
    
         ToastNotification notification = new ToastNotification(toastXml); 
         ToastNotificationManager.CreateToastNotifier().Show(notification); 
        } 
    
  4. Добавлен код метода Run

    BackgroundTaskDeferral _deferral = taskInstance.GetDeferral();

     RawNotification notification = (RawNotification)taskInstance.TriggerDetails; 
         string content = notification.Content; 
    
         // ... 
         SendNotification("test"); 
    
         // ... 
    
         _deferral.Complete(); 
    
  5. Обновленный манифест мое приложение к Toast Capable = YES и Lock Screen Notifications = Badge

  6. Добавлен декларацию для Задачи фона с Supported Task Type = Push Notification и Entry Point = NotificationServer.RawTask

  7. Добавлена ​​код для регистрации фоновой задачи

    общественности статической BackgroundTaskRegistration RegisterBackgroundTask (строка taskEntryPoint, string taskName, IBackgroundTrigger trigger, IBackgroundCondition condition) { // // // Проверьте существующие регистрации этой фоновой задачи. //

     foreach (var cur in BackgroundTaskRegistration.AllTasks) 
         { 
    
          if (cur.Value.Name == taskName) 
          { 
           // 
           // The task is already registered. 
           // 
    
           return (BackgroundTaskRegistration)(cur.Value); 
          } 
         } 
    
    
         // 
         // Register the background task. 
         // 
    
         var builder = new BackgroundTaskBuilder(); 
    
         builder.Name = taskName; 
         builder.TaskEntryPoint = taskEntryPoint; 
         builder.SetTrigger(trigger); 
    
         if (condition != null) 
         { 
    
          builder.AddCondition(condition); 
         } 
    
         BackgroundTaskRegistration task = builder.Register(); 
    
         return task; 
        } 
    

И выполняя его с

var reg = RegisterBackgroundTask("NotificationServer.RawTask", "RawNotifications", new PushNotificationTrigger(), null); 

Есть ли что-то я здесь не хватает, кажется, не мое приложение будет реагировать на событие Push Notification. Я убедился, что мое приложение связано с приложением в магазине, и толкатели отправляются с правильной секретностью клиента и идентификатором приложения.

+0

Hello @Sandeep. Я также придерживался той же проблемы. Вы нашли решение на этом. Пожалуйста, помогите мне. Благодаря! –

ответ

-1

Есть четыре типа уведомлений кнопочных:

  1. обновления Плитки
  2. Badge обновление
  3. уведомление Toast
  4. Сырых уведомления

Всех среды выполнения Windows приложение может использовать первые три нажимать уведомления на переднем плане. Приложения только блокировки экрана могут получать необработанные push-уведомления от WNS. , так что вы должны сделать приложение приложение блокировки экрана.

Для этого вы можете следовать this topic.

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