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:
- Emisja: wszystkie rejestracje w centrum powiadomień otrzymują powiadomienie.
- Tag: wszystkie rejestracje zawierające określony tag otrzymują powiadomienie.
- 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:
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:
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:
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 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);