Udostępnij za pośrednictwem


Wyrażenia routingu i oznaczeń

Przegląd

Wyrażenia tagów umożliwiają kierowanie na specyficzne zestawy urządzeń lub rejestracje podczas wysyłania powiadomień push przez Notification Hubs.

Określanie wartości docelowej określonych rejestracji

Jedynym sposobem określania celu określonych rejestracji powiadomień jest skojarzenie z nimi tagów, a następnie określenie wartości docelowej tych tagów. Jak omówiono w temacie Zarządzanie rejestracją, aby otrzymywać powiadomienia push, aplikacja musi zarejestrować uchwyt urządzenia w centrum powiadomień. Po utworzeniu rejestracji w centrum powiadomień zaplecze aplikacji może wysyłać do niej powiadomienia push. Backend aplikacji może wybrać rejestracje, które mają być adresowane za pomocą określonego powiadomienia w następujący sposób:

  1. Emisja: wszystkie rejestracje w centrum powiadomień otrzymują powiadomienie.
  2. Tag: wszystkie rejestracje zawierające określony tag otrzymują powiadomienie.
  3. Wyrażenie tagu: wszystkie rejestracje, których zestaw tagów jest zgodny z określonym wyrażeniem, otrzymuje powiadomienie.

Etykiety

Tag może być dowolnym ciągiem, do 120 znaków, zawierającym alfanumeryczne i następujące znaki inne niż alfanumeryczne: "_", "@", "#", ".", "", ":", "-". W poniższym przykładzie pokazano aplikację, z której można otrzymywać powiadomienia dotyczące określonych grup muzycznych. W tym scenariuszu prostym sposobem kierowania powiadomień jest etykietowanie rejestracji za pomocą tagów reprezentujących różne przedziały, jak na poniższej ilustracji:

Omówienie tagów

Na rysunku komunikat oznaczony tagiem Beatles dociera tylko do tabletu zarejestrowanego przy użyciu tagu Beatles.

Aby uzyskać więcej informacji na temat tworzenia rejestracji dla tagów, zobacz Zarządzanie rejestracją.

Powiadomienia można wysyłać do tagów przy użyciu metod wysyłania powiadomień klasy Microsoft.Azure.NotificationHubs.NotificationHubClient w zestawie SDK dla usługi Microsoft Azure Notification Hubs. Możesz również użyć Node.jslub interfejsów API REST powiadomień push. Oto przykład użycia zestawu 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");

Tagi nie mogą być wstępnie skonfigurowane i mogą odnosić się do wielu pojęć specyficznych dla aplikacji. Na przykład, użytkownicy tej aplikacji demonstracyjnej mogą komentować zespoły i chcą otrzymywać powiadomienia, nie tylko na temat komentarzy dotyczących ich ulubionych zespołów, ale także wszystkich komentarzy od znajomych, niezależnie od tego, na jaki zespół są skierowane. Na poniższej ilustracji przedstawiono przykład tego scenariusza:

Oznacza znajomych

W tym przykładzie Alice jest zainteresowana aktualizacjami Beatles, a Bob jest zainteresowany aktualizacjami na temat Wailers. Bob jest również zainteresowany komentarzami Charliego, a Charlie interesuje się zespołem muzycznym The Wailers. Po wysłaniu powiadomienia o komentarzu Charliego do Beatlesów usługa Notification Hubs wysyła je zarówno do Alice, jak i Boba.

Chociaż można zakodować wiele zagadnień w tagach (na przykład band_Beatles lub follows_Charlie), tagi są prostymi ciągami, a nie właściwościami z wartościami. Rejestracja dopasowuje się tylko do obecności lub braku konkretnego tagu.

Aby zapoznać się z pełnym samouczkiem krok po kroku dotyczącym używania tagów do wysyłania do grup zainteresowań, zobacz Breaking News (Istotne wiadomości).

Uwaga

Usługa Azure Notification Hubs obsługuje maksymalnie 60 tagów na rejestrację.

Używanie tagów do określania użytkowników docelowych

Innym sposobem użycia tagów jest zidentyfikowanie wszystkich urządzeń skojarzonych z określonym użytkownikiem. Rejestrację można oznaczyć tagiem zawierającym identyfikator użytkownika, jak pokazano na poniższym rysunku:

Tagowanie użytkowników

Na rysunku otagowany user_Alice komunikat dociera do wszystkich urządzeń oznaczonych tagiem user_Alice.

Wyrażenia tagów

Istnieją przypadki, w których powiadomienia muszą być kierowane do zestawu rejestracji zidentyfikowanych nie przez pojedynczy tag, ale przez wyrażenie logiczne przy użyciu tagów.

Rozważ aplikację sportową, która wysyła przypomnienie wszystkim w Bostonie o grze między Red Sox i Cardinals. Jeśli aplikacja kliencka rejestruje tagi dotyczące zainteresowania zespołami i lokalizacją, powiadomienie powinno być kierowane do wszystkich osób w Bostonie, którzy są zainteresowani albo Red Sox lub Cardinals. Ten warunek można wyrazić za pomocą następującego wyrażenia logicznego:

(follows_RedSox || follows_Cardinals) && location_Boston

Wyrażenia tagów

Wyrażenia tagów obsługują typowe operatory logiczne, takie jak AND (&&), OR (||) i NOT (!), mogą również zawierać nawiasy. Wyrażenia tagów używające tylko operatorów OR mogą odwoływać się do 20 tagów; wyrażenia zawierające operatory AND, ale bez operatorów OR, mogą odwoływać się do 10 tagów. W przeciwnym razie wyrażenia tagów są ograniczone do 6 tagów.

Oto przykład wysyłania powiadomień za pomocą wyrażeń tagów przy użyciu zestawu 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);