Udostępnij za pośrednictwem


Wyrażenia routingu i tagu

Omówienie

Wyrażenia tagów umożliwiają określanie określonych zestawów urządzeń lub w szczególności rejestracji podczas wysyłania powiadomień wypychanych za pośrednictwem usługi Notification Hubs.

Określanie wartości docelowej dla określonych rejestracji

Jedynym sposobem na określenie określonych rejestracji powiadomień jest skojarzenie tagów z nimi, a następnie określenie wartości docelowej tych tagów. Zgodnie z opisem w temacie Zarządzanie rejestracją, aby otrzymywać powiadomienia wypychane, aplikacja musi zarejestrować dojście urządzenia w centrum powiadomień. Po utworzeniu rejestracji w centrum powiadomień zaplecze aplikacji może wysyłać do niej powiadomienia wypychane. Zaplecze aplikacji może wybrać rejestracje docelowe z określonym powiadomieniem 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, otrzymują powiadomienie.

Tagi

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ć wyskakujące powiadomienia dotyczące określonych grup muzycznych. W tym scenariuszu prostym sposobem kierowania powiadomień jest oznaczanie rejestracji tagami reprezentującymi różne przedziały, jak na poniższej ilustracji:

Omówienie tagów

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

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

Powiadomienia do tagów można wysyłać przy użyciu metod Microsoft.Azure.NotificationHubs.NotificationHubClient wysyłania powiadomień klasy w zestawie SDK usługi Microsoft Azure Notification Hubs . Możesz również użyć Node.js lub interfejsów API REST powiadomień wypychanych. 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 aprowidowane i mogą odwoływać się do wielu pojęć specyficznych dla aplikacji. Na przykład użytkownicy tej przykładowej aplikacji mogą komentować zespoły i chcą otrzymywać wyskakujące wiadomości, nie tylko za komentarze do ulubionych zespołów, ale także dla wszystkich komentarzy od znajomych, niezależnie od zespołu, na którym komentują. Na poniższej ilustracji przedstawiono przykład tego scenariusza:

Znaczniki znajomych

W tym przykładzie Alicja jest zainteresowana aktualizacjami beatlesów, a Bob jest zainteresowany aktualizacjami dla Wailers. Bob jest również zainteresowany komentarzami Charliego, a Charlie jest zainteresowany 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 kodować wiele problemów 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 jest zgodna tylko z obecnością lub brakiem określonego 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 kierowania użytkowników

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 oznakowany user_Alice komunikat dociera do wszystkich urządzeń oznaczonych tagiem user_Alice.

Wyrażenia tagów

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

Rozważmy 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 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 OR operatorów mogą odwoływać się do 20 tagów; wyrażenie z operatorami, AND ale żadne operatory nie 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ń z wyrażeniami 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);