Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Теговые выражения позволяют работать с конкретными наборами устройств или, более конкретно, регистрациями устройств, для отправки push-уведомления через Центры уведомлений.
Нацеливание на определенные регистрации
Единственным способом нацеливания на определенные регистрации уведомлений является связывание тегов с ними, а затем нацеливание на эти теги. Как описано в разделе "Управление регистрацией", чтобы получать push-уведомления, приложение должно зарегистрировать дескриптор устройства в центре уведомлений. После создания регистрации в центре уведомлений серверная часть приложения может отправлять в него push-уведомления. Серверная часть приложения может выбрать регистрации, на которые будет направлено конкретное уведомление, следующими способами:
- Широковещательная трансляция: все регистрации в узле уведомлений получают уведомление.
- Тег: все регистрации, содержащие указанный тег, получают уведомление.
- Выражение тега: все регистрации, набор тегов которых соответствует указанному выражению, получает уведомление.
Теги
Тег может быть любой строкой, до 120 символов, содержащей буквенно-цифровые символы и следующие небуквенно-цифровые символы: '_
', '@
', '#
', '.
', ':
', '-
'. В следующем примере показано приложение, из которого вы можете получать уведомления о конкретных музыкальных группах. В этом сценарии простой способ маршрутизации уведомлений заключается в маркировке регистраций с тегами, представляющими разные полосы, как показано на следующем рисунке:
На рисунке сообщение с тегом Beatles достигает только планшета, зарегистрированного с тегом Beatles.
Дополнительные сведения о создании регистраций для тегов см. в разделе "Управление регистрацией".
Вы можете отправлять уведомления в теги, используя методы отправки уведомлений класса Microsoft.Azure.NotificationHubs.NotificationHubClient
в SDK для Центров уведомлений Microsoft Azure. Вы также можете использовать Node.jsили REST API push-уведомлений. Ниже приведен пример использования пакета SDK.
Microsoft.Azure.NotificationHubs.NotificationOutcome outcome = null;
// Windows 8.1 / Windows Phone 8.1
var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" +
"You requested a Beatles notification</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, "Beatles");
// Windows 10
toast = @"<toast><visual><binding template=""ToastGeneric""><text id=""1"">" +
"You requested a Wailers notification</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, "Wailers");
Теги не должны быть предварительно подготовлены и могут ссылаться на несколько концепций для конкретных приложений. Например, пользователи этого примера приложения могут комментировать группы и хотят получать тосты, не только для комментариев о своих любимых группах, но и для всех комментариев от своих друзей, независимо от группы, на которой они комментируют. На следующем рисунке показан пример этого сценария:
В этом примере Алиса заинтересована в обновлениях для Beatles, и Боб заинтересован в обновлениях для Wailers. Боб также заинтересован в комментариях Чарли, и Чарли заинтересован в Wailers. Когда уведомление отправляется для комментария Чарли о Битлз, Центры уведомлений отправляют его как Алисе, так и Бобу.
Хотя можно закодировать несколько аспектов в тегах (например, band_Beatles
или follows_Charlie
), теги являются простыми строками, а не свойствами со значениями. Регистрация совпадает только с наличием или отсутствием определенного тега.
Полное пошаговое руководство по использованию тегов для отправки в группы интересов см. в статье "Критические новости".
Примечание.
Центры уведомлений Azure поддерживают не более 60 тегов на регистрацию.
Использование тегов для целевых пользователей
Другим способом использования тегов является идентификация всех устройств, связанных с конкретным пользователем. Вы можете пометить регистрацию с тегом, содержащим идентификатор пользователя, как показано на следующем рисунке:
На рисунке сообщение, помеченное user_Alice
тегом, достигает всех устройств, помеченных тегом user_Alice
.
Выражения тегов
Существуют случаи, когда уведомления должны нацелены на набор регистраций, определяемых не одним тегом, а логическим выражением с помощью тегов.
Рассмотрим спортивное приложение, которое отправляет напоминание всем в Бостоне о матче между "Red Sox" и Кардиналами. Если клиентское приложение регистрирует теги о интересах к командам и расположению, уведомление должно быть предназначено для всех в Бостоне, которые заинтересованы либо Red Sox, либо кардиналов. Это условие можно выразить следующим логическим выражением:
(follows_RedSox || follows_Cardinals) && location_Boston
Выражения тегов поддерживают распространенные логические операторы, такие как AND
(&&
), OR
(||
) и NOT
(!
); они также могут содержать скобки. Выражения тегов, использующие только операторы OR
, могут ссылаться на 20 тегов; выражения с операторами AND
, но без операторов OR
, могут ссылаться на 10 тегов; в противном случае выражения тегов ограничены 6 тегами.
Ниже приведен пример отправки уведомлений с выражениями тегов с помощью пакета SDK:
Microsoft.Azure.NotificationHubs.NotificationOutcome outcome = null;
String userTag = "(location_Boston && !follows_Cardinals)";
// Windows 8.1 / Windows Phone 8.1
var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">" +
"You want info on the Red Sox</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, userTag);
// Windows 10
toast = @"<toast><visual><binding template=""ToastGeneric""><text id=""1"">" +
"You want info on the Red Sox</text></binding></visual></toast>";
outcome = await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast, userTag);