Использование очереди уведомлений (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
Необходимые условия
Для понимания этого раздела вам понадобится:
- Хорошее знание понятий и терминов, связанных с плиткой и уведомлениями. См. также раздел Плитки, индикаторы событий и уведомления.
- Хорошее знание схемы XML плитки. Подробнее см. в статье Схема плитки.
- Умение создавать простые приложения Магазина Windows на JavaScript с помощью API среды выполнения Windows. Дополнительные сведения см. в разделе Создание первого приложения Магазина Windows на JavaScript.
- Готовая плитка по умолчанию для вашего приложения, определенная в его манифесте. Подробнее об этом: Краткое руководство. Создание плитки по умолчанию с помощью редактора манифестов Microsoft Visual Studio.
- Хорошее понимание XML и работы с XML через API объектной модели документа (DOM).
Инструкции
Этап 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);
Связанные разделы
Краткое руководство: отправка обновления плитки
Пример плиток и индикаторов событий приложений
Размеры изображения плитки и всплывающих уведомлений