Использование очереди уведомлений (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Примечание  Не используете JavaScript? См. раздел Как использовать очередь с локальными уведомлениями (XAML).

 

В этом разделе описано, как включить очередь уведомлений для плитки, в данном случае — с помощью локальных уведомлений. В нем также показано, как присвоить уведомлению тег перед отправкой во избежание появления в очереди копий или устаревшего содержимого. При включенной очереди уведомлений Windows будет последовательно прокручивать до пяти уведомлений.

Версии для примеров C#, C++ или Visual Basic, приведенных в данном кратком руководстве, см. в разделе Использование очереди уведомлений (C#, C++ или Visual Basic).

Примечание  В этом кратком руководстве мы работаем с содержимым уведомления непосредственно через модель DOM XML. Кроме того, это можно делать и через библиотеку NotificationsExtensions, в которой XML-содержимое представлено в форме свойств объекта, включая свойства Intellisense. Подробнее: Краткое руководство: использование библиотеки NotificationsExtensions в коде. Посмотреть, как представленный в этом кратком руководстве программный код будет выглядеть при использовании библиотеки NotificationsExtenstions, можно в Примере App tiles and badges.

 

Что необходимо знать

Технологии

  • Windows Runtime

Необходимые условия

Для понимания этого раздела вам понадобится:

Инструкции

Этап 1: Дополнительно: объявление переменной пространства имен

На этом этапе создается краткое имя, которое будет использоваться вместо полного имени пространства имен. Это эквивалент оператора "using" в C# или оператора "Imports" в Visual Basic. Оно позволяет упростить код.

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

 


var notifications = Windows.UI.Notifications;

Этап 2: Задайте параметр для включения циклического изменения уведомлений

Этот код включает очередь уведомлений для вашего приложения. Во время работы приложения этот вызов нужен только один раз, хотя и от повторного вызова вреда не будет. Рекомендуется поместить этот вызов в код инициализации приложения. Это гарантирует, что вызов произойдет до локального обновления плитки, запроса канала push-уведомления или начала периодических обновлений плитки.


notifications.TileUpdateManager.createTileUpdaterForApplication().enableNotificationQueue(true);

Этап 3: Создайте уведомление на плитке

Это первый шаг для любых уведомлений плитки. Он ничем не отличается от других случаев и добавлен только для полноты примера. Более подробные сведения см. в разделе Краткое руководство: отправка обновления плитки.

Примечание  При вызове метода getTemplateContent в Windows 8 он возвращает шаблон версии 1. Когда вызов этого метода происходит в системе Windows 8.1, он возвращает шаблон версии 2 или шаблон версии 3, если речь идет о шаблонах, предназначенных только для телефонов. Но если совместимость с Windows 8 объявлена в манифесте приложения, этот метод возвращает шаблон версии 1 независимо от версии Windows. В этом разделе мы будем использовать шаблон версии 2.

 


var template = notifications.TileTemplateType.tileWide310x150ImageAndText01;                      
var tileXml = notifications.TileUpdateManager.getTemplateContent(template);

// TO DO: Fill in the template with your tile content. Define a tile and add it to tileXML.

var tileNotification = new notifications.TileNotification(tileXml);

Этап 4: Дополнительно: присвойте уведомлению тег

Тег — это строка длиной не более 16 буквенно-цифровых символов с завершающим нуль-символом, которая однозначно определяет уведомление в приложении.

При включении очереди в плитке могут попеременно отображаться максимум пять уведомлений плитки. По умолчанию политика замены уведомлений в очереди использует метод FIFO; когда очередь переполнена, при приходе нового уведомления удаляется самое старое уведомление. Учтите, что порядок отображения уведомлений не соответствует строгому линейному шаблону. Уведомления могут отображаться не в том порядке, в каком они пришли.

Чтобы переопределить поведение очереди FIFO, можно присвоить уведомлениям теги. Если вновь пришедшее уведомление имеет тот же тег, что и уже существующее, то новое уведомление заменяет старое, независимо от того, на каком месте в очереди находилось старое уведомление. Например, если плитка показывает курсы акций, желательно, чтобы там отображались самые последние сведения. Использование тегов для замены уведомлений в очереди осуществляется по выбору пользователя.

Подробнее об использовании тегов с очередью уведомлений см. в разделе Использование очереди уведомлений. В приведенном ниже примере показана установка тегов для локальных уведомлений. Для получения сведений об установке тегов для периодических обновлений см. Tileupdater.startPeriodicUpdateBatch. Сведения об установке тегов для push-уведомлений см. в разделе Заголовки запроса и ответа в службе push-уведомлений.

tileNotification.tag = "stockMSFT";

Этап 5: Отправить уведомление на плитку


notifications.TileUpdateManager.createTileUpdaterForApplication().update(tileNotification);

Связанные разделы

Краткое руководство: отправка обновления плитки

Пример плиток и индикаторов событий приложений

Размеры изображения плитки и всплывающих уведомлений

Общие сведения о плитках и уведомлениях плиток

Руководство и контрольный список для плиток