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


Выражения маршрутизации и тегов

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

Назначение определенных регистраций

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

Серверная часть приложения может выбрать регистрацию для целевого объекта с определенным уведомлением следующим образом:

  1. широковещательной трансляции: все регистрации в центре уведомлений получают уведомление.

  2. Тег: все регистрации, содержащие указанный тег, получают уведомление.

  3. выражение тега: все регистрации, набор тегов которых соответствует указанному выражению, получает уведомление.

Заметка

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

Теги

Тег может быть любой строкой, до 120 символов, содержащих буквенно-цифровые символы и следующие не буквенно-цифровые символы: "_", "@", "#", ".", ":", "-". В следующем примере показано приложение, из которого можно получать всплывающие уведомления о конкретных музыкальных группах. В этом сценарии простой способ маршрутизации уведомлений заключается в маркировке регистраций с тегами, представляющими разные полосы, как показано на рисунке ниже.

выражения тегов

На этом рисунке сообщение, помеченное Beatles достигает только планшета, зарегистрированного с тегом Beatles.

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

Уведомления можно отправлять в теги с помощью отправки уведомлений методов класса Microsoft.ServiceBus.Notifications.NotificationHubCl ient в пакете SDK. Вы также можете использовать Node.jsили интерфейсы RESTAPI push-уведомлений.

Обратите внимание на следующие примеры:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "tag");
notificationHubService.wns.sendToastText01('tag', {
            text1: 'Hello World!'
        }, callback);

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

выражения тегов

На этой картине Алиса заинтересована в обновлениях для Beatles, и Боб заинтересован в обновлениях для Wailers. Боб также заинтересован в комментариях Чарли, и Чарли заинтересован в Wailers. Когда уведомление отправляется для комментария Чарли о Beatles, как Алиса, так и Боб получают его.

Важный

Хотя можно закодировать несколько проблем в тегах (например, "band_Beatles" или "follows_Chanrlie"), теги являются простыми строками, а не свойствами со значениями. Регистрация сопоставляется только при наличии или отсутствии определенного тега.

Полное пошаговое руководство по использованию тегов для отправки в группы интересов см. в разделе Критические новости.

Заметка

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

Использование тегов для целевых пользователей

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

выражения тегов

На этом рисунке сообщение с тегом uid:Alice достигает всех регистраций, помеченных uid:Alice; следовательно, все устройства Алисы.

Выражения тегов

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

Рассмотрим спортивное приложение, которое отправляет напоминание всем в Бостоне о игре между Red Sox и кардиналов. Если клиентское приложение регистрирует теги о интересах к командам и расположению, уведомление должно быть предназначено для всех в Бостоне, которые заинтересованы либо Red Sox, либо кардиналов. Это условие можно выразить следующим логическим выражением:

(follows_RedSox || follows_Cardinals) && location_Boston

выражения тегов

Выражения тегов могут содержать все логические операторы, такие как AND (&&), OR (||) и NOT (!). Они также могут содержать скобки. Выражения тегов ограничены 20 тегами, если они содержат только OR; в противном случае они ограничены 6 тегами.

Уведомления можно отправлять в выражения тегов с помощью отправлять уведомления методами класса Microsoft.ServiceBus.Notifications.Notifications.NotificationHubCl ient в пакете SDK. Вы также можете использовать Node.jsили интерфейсы RESTAPI push-уведомлений. Обратите внимание на следующие примеры:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "(tagA && !tagB)");
notificationHubService.wns.sendToastText01('(tagA && !tagB)', {
            text1: 'Hello World!'
        }, callback);

См. также

Другие ресурсы

Справочники по API
учебнике по критическим новостям
Отправка уведомлений пользователям