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


Выбор правильного типа канала push-уведомлений

В этой статье рассматриваются три типа каналов push-уведомлений Windows (первичные, вторичные и альтернативные), которые помогают доставлять содержимое в приложение.

(Дополнительные сведения о создании push-уведомлений см. в разделеОбзор служб push-уведомлений Windows (WNS).)

Типы каналов push-уведомлений

Существует три типа push-каналов, которые можно использовать для отправки уведомлений в приложение Windows. В их число входят:

Основной канал — "традиционный" канал push-уведомлений. Может использоваться любым приложением в магазине для отправки всплывающих уведомлений, плиток, необработанных или индикаторов событий. Дополнительные сведения см. здесь.

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

- , добавленного в Creators Update. Он позволяет отправлять необработанные уведомления любому приложению Windows, включая те, которые не зарегистрированы в Магазине. Опять же, обратите внимание, что альтернативный канал больше не поддерживается.

Примечание.

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

Основные каналы

Это наиболее часто используемые каналы в Windows прямо сейчас, и хорошо подходит практически для любого сценария, в котором ваше приложение будет распространяться через Microsoft Store. Они позволяют отправлять все типы уведомлений в приложение.

Что включает первичные каналы?

  • Отправка обновлений плитки или значка на основную плитку. Если пользователь решил закрепить плитку на начальном экране, это ваш шанс показать. Отправка обновлений с полезными сведениями или напоминаниями о взаимодействиях в приложении.
  • Отправка всплывающих уведомлений. Всплывающие уведомления — это возможность немедленно получить некоторую информацию перед пользователем. Они окрашены оболочкой в верхней части большинства приложений и живут в центре уведомлений, чтобы пользователь смог вернуться и взаимодействовать с ними позже.
  • Отправка необработанных уведомлений для активации фоновой задачи. Иногда требуется выполнить некоторые действия от имени пользователя на основе уведомления. Необработанные уведомления позволяют выполнять фоновые задачи приложения
  • Шифрование сообщений при передаче, предоставляемое Windows с помощью TLS. Сообщения шифруются в проводе как в WNS, так и на устройство пользователя.

Ограничения основных каналов

  • Требуется использовать REST API WNS для push-уведомлений, которые не стандартны для поставщиков устройств.
  • Для каждого приложения можно создать только один канал.
  • Требуется, чтобы ваше приложение было зарегистрировано в Microsoft Store

Создание основного канала

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

Вторичные каналы плиток

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

Что включает вторичные каналы плиток?

  • Отправка уведомлений плитки или значка на вторичные плитки. Вторичные плитки — отличный способ вернуть пользователей в приложение. Они являются глубокой ссылкой на информацию, о которую они заботятся, и положить соответствующую информацию на плитки помогает вернуть их снова и снова.
  • Разделение каналов (и истечение срока действия) между различными плитками. Это позволяет разделить логику в серверной части между различными типами вторичных плиток, которые пользователь может закрепить на начальном экране.
  • Шифрование сообщений при передаче, предоставляемое Windows с помощью TLS. Сообщения шифруются в проводе как в WNS, так и на устройство пользователя.

Ограничения вторичных каналов плиток

  • Не разрешены всплывающие уведомления или необработанные уведомления. Всплывающие или необработанные уведомления, отправленные на вторичную плитку, игнорируются системой.
  • Требуется, чтобы ваше приложение было зарегистрировано в Microsoft Store

Создание дополнительного канала плитки

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

Альтернативные каналы

Альтернативные каналы позволяют приложениям отправлять push-уведомления без регистрации в Microsoft Store или создания каналов push-уведомлений за пределами основного, используемого для приложения.

Примечание.

По состоянию на 1 июля 2021 г. приложения, которые хотят использовать веб-push-канал или альтернативный канал для отправки уведомлений на основе браузера через WNS, необходимо будет подключиться к Microsoft Store.

Что включить альтернативные каналы?

  • Отправка необработанных push-уведомлений в Windows, работающей на любом устройстве с Windows. Альтернативные каналы разрешают только необработанные уведомления (однако вы по-прежнему можете проснуть фоновую задачу для локального отображения всплывающих уведомлений или уведомлений плиток).
  • Позволяет приложениям создавать несколько необработанных каналов push-уведомлений для различных функций в приложении. Приложение может создавать до 1000 альтернативных каналов, и каждый из них действителен в течение 30 дней. Каждый из этих каналов может управляться или отзываться отдельно приложением.
  • Альтернативные каналы push-уведомлений можно создавать без регистрации приложения в Microsoft Store. Если приложение будет установлено на устройствах без регистрации его в Microsoft Store, оно по-прежнему сможет получать push-уведомления.
  • Серверы могут отправлять push-уведомления с помощью стандартных ИНТЕРФЕЙСов REST API W3C и протокола VAPID. Альтернативные каналы используют стандартный протокол W3C, что позволяет упростить логику сервера, которая должна поддерживаться.
  • Полное, сквозное шифрование сообщений. Хотя основной канал обеспечивает шифрование во время передачи, если вы хотите быть дополнительным безопасным, альтернативные каналы позволяют приложению передавать заголовки шифрования для защиты сообщения.

Ограничения альтернативных каналов

  • Сервер приложения не может отправлять уведомления о вводе push-уведомлений, плитки или индикатора событий. Вы можете отправлять только необработанные push-уведомления. Ваше приложение по-прежнему может отправлять локальные уведомления из фоновой задачи.
  • Требуется другой REST API, отличный от основных или вторичных каналов плиток. Использование стандартного REST API W3C означает, что приложению потребуется другая логика отправки push-уведомлений или обновлений плиток

Создание альтернативного канала

PushNotificationChannel webChannel = 
	await PushNotificationChannelManager.GetDefault().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(applicationServerKey, appChannelId);

Сравнение типов каналов

Ниже приведено быстрое сравнение различных типов каналов:

Тип Отправить уведомление? Отправить плитку или эмблему? Push-необработанные уведомления? Аутентификация API Требуется регистрация магазина? Каналы Шифрование
Основной Да Да — только первичная плитка Да OAuth WNS REST API Да Одно для каждого приложения Во время передачи
Вспомогательная плитка нет Да — только вторичная плитка нет OAuth WNS REST API Да Одна на вторичную плитку Во время передачи
Альтернативный нет нет Да ПРЕСНЫЙ Стандарт W3C для WebPush нет 1000 на приложение Во время передачи и завершения шифрования, возможного с передачей заголовка (требуется код приложения)

Выбор правильного канала

Как правило, мы рекомендуем использовать основной канал в приложении с несколькими исключениями:

  1. Если вы отправляете обновление плитки на вторичную плитку, используйте канал push-отправки вторичной плитки.
  2. Если вы передаете каналы другим службам (например, в случае браузера), используйте альтернативный канал.
  3. Если вы создаете приложение, которое не будет отображаться в магазине Windows (например, бизнес-приложение) используйте альтернативный канал.
  4. Если у вас есть веб-push-код на сервере, который вы хотите повторно использовать или иметь несколько каналов в серверной службе, используйте альтернативные каналы.