Поделиться через


Обзор периодических уведомлений

Периодические уведомления, которые также называются опрашиваемыми уведомлениями, обновляют плитки и индикаторы событий с фиксированным интервалом, скачивая содержимое из облачной службы. Чтобы использовать периодические уведомления, код клиентского приложения должен предоставить две части информации:

  • Универсальный идентификатор ресурса (URI) веб-расположения для Windows для опроса обновлений плитки или значков для приложения
  • Как часто следует опрашивировать URI

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

Обратите внимание , что дополнительные сведения см. в примере push-уведомлений и периодических уведомлений для Windows 8.1 и повторного использования исходного кода в приложении Windows 10.

 

Принцип работы

Периодические уведомления требуют, чтобы приложение размещалось в облачной службе. Служба будет периодически опрашивироваться всеми пользователями, у которых установлено приложение. При каждом интервале опроса, например один раз в час, Windows отправляет HTTP-запрос GET в URI, скачивает запрошенное содержимое плитки или эмблемы (как XML), предоставленное в ответ на запрос, и отображает содержимое на плитке приложения.

Обратите внимание, что периодические обновления нельзя использовать с всплывающими уведомлениями. Всплывающее уведомление лучше всего доставлять через запланированные или push-уведомления .

Расположение URI и XML-содержимое

Любой допустимый веб-адрес HTTP или HTTPS можно использовать в качестве URI для опроса.

Ответ облачного сервера включает скачаемое содержимое. Содержимое, возвращаемое из URI, должно соответствовать спецификации схемы XML плитки или эмблемы и должно быть закодировано UTF-8. Вы можете использовать определенные заголовки HTTP, чтобы указать время окончания срока действия или тег для уведомления.

Поведение опроса

Вызовите один из следующих методов, чтобы начать опрос:

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

Интервал повторения

Интервал повторения указывается в качестве параметра методов, перечисленных выше. Обратите внимание, что хотя Windows делает лучшие усилия для опроса по запросу, интервал не является точным. Запрошенный интервал опроса может быть отложен до 15 минут по усмотрению Windows.

Время начала

При необходимости можно указать определенное время дня, чтобы начать опрос. Рассмотрим приложение, которое изменяет содержимое плитки только один раз в день. В таком случае рекомендуется провести опрос близко к времени обновления облачной службы. Например, если ежедневный торговый сайт публикует предложения дня в 8 утра, опрос нового содержимого плитки вскоре после 8 утра.

Если вы предоставляете время начала, первый вызов опроса метода для содержимого немедленно. Затем регулярный опрос начинается в течение 15 минут от предоставленного времени начала.

Автоматическое поведение повторных попыток

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

Обработка обновлений приложений

При выпуске обновления приложения, изменяющего URI опроса, необходимо добавить фоновую задачу триггера ежедневного времени, которая вызывает StartPeriodicUpdate с новым универсальным кодом ресурса (URI), чтобы плитки использовали новый универсальный код ресурса (URI). В противном случае, если пользователи получают обновление приложения, но не запускают приложение, их плитки по-прежнему будут использовать старый URI, который может не отображаться, если URI теперь недопустим или если возвращенные полезные данные ссылаются на локальные образы, которые больше не существуют.

Истечение срока действия уведомлений плитки и индикатора событий

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

Облачная служба задает дату и время окончания срока действия уведомления, включив заголовок HTTP X-WNS-Expires в полезные данные ответа. Заголовок HTTP X-WNS-Expires соответствует формату даты HTTP. Дополнительные сведения см. в разделе StartPeriodicUpdate или StartPeriodicUpdateBatch.

Например, во время активного торгового дня фондового рынка можно установить срок действия обновления цен на акции в два раза больше, чем интервал опроса (например, через час после получения, если вы опросы каждые полчаса). В другом примере приложение новостей может определить, что один день является подходящим временем истечения срока действия для ежедневного обновления плитки новостей.

Периодические уведомления в очереди уведомлений

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

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

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

Дополнительные сведения см. в разделе "Использование очереди уведомлений".

Включение очереди уведомлений

Чтобы реализовать очередь уведомлений, сначала включите очередь для плитки (см. инструкции по использованию очереди уведомлений с локальными уведомлениями). Вызов, позволяющий включить очередь, необходимо выполнить только один раз в течение всего времени существования приложения, но при каждом запуске приложения нет вреда.

Опрос для нескольких уведомлений за раз

Необходимо указать уникальный URI для каждого уведомления, которое вы хотите скачать для плитки в Windows. С помощью метода StartPeriodicUpdateBatch можно одновременно предоставить до пяти URI для использования с очередью уведомлений. Каждый универсальный код ресурса (URI) опрашивируется для одной полезных данных уведомления или почти одновременно. Каждый опрашивленный URI может возвращать собственный срок действия и значение тега.