Миграция функций push-уведомлений
В этом разделе содержатся рекомендации по миграции в области функций push-уведомлений.
Внимание
В настоящее время поддерживаются только необработанные push-уведомления и push-уведомления приложений. Push-уведомления значка и push-уведомления плитки не поддерживаются.
Сводка различий между API и (или) функциями
Push-уведомления можно разбить на эти четыре отдельных этапа.
Этап | UWP | Пакет SDK для приложений Windows |
---|---|---|
Идентификация | Центр партнеров (MSA) | регистрация приложение Azure (AAD) |
Запрос канала | Асинхронный | Асинхронный идентификатор регистрации приложение Azure Встроенная логика повторных попыток (до 5 повторных попыток) |
Активация | В процессе, PushTrigger*, активация COM* | Активация COM, ShellExecute |
Отправка push-уведомлений | Использует конечную точку login.live.com для получения маркера доступа | Использует конечную точку https://login.microsoftonline.com/{tenantID}/oauth2/token для запроса токена |
* Поддерживается для Windows 10 версии 2004 (10.0; Сборка 19041) и более поздних версий.
Настройка удостоверений
В пакете SDK для приложений Windows функция push-уведомлений использует удостоверение из приложение Azure регистрации (AAD), что удаляет требование наличия имени семейства пакетов (PFN) из Центра партнеров для использования push-уведомлений.
- Для приложения UWP вы регистрируете и регистрируете приложение в Центре партнеров Магазина Windows.
- Для приложения пакета SDK для приложений для Windows создайте учетную запись Azure и создадите приложение Azure регистрацию (AAD).
Запросы канала
Запрос канала обрабатывается асинхронно и требует идентификатора GUID приложение Azure ID и azure tenantID (вы получаете идентификатор приложение Azure и идентификатор клиента из регистрации приложения AAD). Вместо имени семейства пакетов используется идентификатор приложение Azure ID, используемый приложением UWP. Если запрос выполняется с ошибкой повтора, платформа уведомлений попытается выполнить несколько повторных попыток.
Приложение пакета SDK для приложений Windows может проверить состояние запроса канала.
Активация
Инструкции по регистрации и активации пакета SDK для Приложений Windows см. в статье "Настройка приложения для получения push-уведомлений".
Отправка push-уведомлений
Приложение пакета SDK для приложений Windows должно запрашивать маркер доступа из конечной точки AAD, а не из конечной точки MSA.
Запрос маркера доступа
Для приложения UWP:
POST /accesstoken.srf HTTP/1.1
Host: login.live.com
Content-Type: application/x-www-form-urlencoded
Cookie: MSCC=73.140.231.96-US
Content-Length: 112
grant_type=client_credentials&client_id=<AppID_Here>&client_secret=<Client_Secret_Here>&scope=notify.windows.com
Для приложения пакета SDK для Приложений Windows (запрос маркера доступа AAD):
POST /{tenantID}/oauth2/v2.0/token Http/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 160
grant_type=client_credentials&client_id=<Azure_App_Registration_AppId_Here>&client_secret=<Azure_App_Registration_Secret_Here>&resource=https://wns.windows.com/
HTTP Post to WNS
Когда дело доходит до отправки HTTP-запроса POST в WNS, нет изменений из UWP. Маркер доступа по-прежнему передается в заголовке авторизации.
POST /?token=[ChannelURI] HTTP/1.1
Host: dm3p.notify.windows.com
Content-Type: application/octet-stream
X-WNS-Type: wns/raw
Authorization: Bearer [your access token]
Content-Length: 46
{ Sync: "Hello from the Contoso App Service" }
См. также
Windows developer