Směrování a výrazy značek
Přehled
Výrazy značek umožňují při odesílání nabízených oznámení prostřednictvím Notification Hubs cílit na konkrétní sady zařízení nebo konkrétně na registrace.
Cílení na konkrétní registrace
Jediným způsobem, jak cílit na konkrétní registrace oznámení, je přidružit k nim značky a pak cílit na tyto značky. Jak je popsáno v tématu Správa registrace, aby aplikace dostávala nabízená oznámení, musí v centru oznámení zaregistrovat popisovač zařízení. Jakmile aplikace vytvoří registraci v centru oznámení, může jí back-end aplikace odesílat nabízená oznámení. Back-end aplikace může zvolit registrace, na které se má cílit s konkrétním oznámením, následujícími způsoby:
- Vysílání: Oznámení obdrží všechny registrace v centru oznámení.
- Značka: Oznámení obdrží všechny registrace, které obsahují zadanou značku.
- Výraz značky: Oznámení obdrží všechny registrace, jejichž sada značek odpovídá zadanému výrazu.
Značky
Značka může být libovolný řetězec, maximálně 120 znaků, obsahující alfanumerické znaky a následující jiné než alfanumerické znaky: '_
', '@
', '#
.
', ':
', '-
'. Následující příklad ukazuje aplikaci, ze které můžete přijímat informační zprávy o konkrétních hudebních skupinách. V tomto scénáři je jednoduchým způsobem, jak směrovat oznámení, označit registrace značkami, které představují různá pásma, jak je znázorněno na následujícím obrázku:
Na obrázku se zpráva označená Beatles dostane jenom na tablet, který je zaregistrovaný se značkou Beatles.
Další informace o vytváření registrací pro značky najdete v tématu Správa registrací.
Oznámení do značek můžete odesílat pomocí metod Microsoft.Azure.NotificationHubs.NotificationHubClient
odesílání oznámení třídy v sadě Microsoft Azure Notification Hubs SDK. Můžete také použít Node.js nebo rozhraní REST API nabízených oznámení. Tady je příklad použití sady 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");
Značky nesmí být předem zřízené a mohou odkazovat na více konceptů specifických pro aplikaci. Uživatelé této ukázkové aplikace mohou například komentovat kapely a chtějí dostávat informační zprávy, a to nejen pro komentáře k jejich oblíbeným kapelám, ale také pro všechny komentáře od svých přátel, bez ohledu na kapelu, kterou komentují. Následující obrázek ukazuje příklad tohoto scénáře:
V tomto příkladu se Alice zajímá o aktualizace pro Beatles a Bob se zajímá o aktualizace pro Wailers. Bob se také zajímá o Charlieho komentáře a Charlie se zajímá o Wailers. Když se odešle oznámení o Charlieho komentáři k Beatles, notification Hubs ho pošle Alici i Bobovi.
I když můžete kódovat více aspektů do značek (například band_Beatles
nebo follows_Charlie
), značky jsou jednoduché řetězce, a ne vlastnosti s hodnotami. Registrace se shoduje pouze s přítomností nebo nepřítomností konkrétní značky.
Úplný podrobný kurz, jak používat značky pro odesílání zájmovým skupinám, najdete v tématu Nejnovější zprávy.
Poznámka
Azure Notification Hubs podporuje maximálně 60 značek na jednu registraci.
Použití značek k cílení na uživatele
Dalším způsobem použití značek je identifikace všech zařízení přidružených ke konkrétnímu uživateli. Registraci můžete označit značkou, která obsahuje ID uživatele, jako na následujícím obrázku:
Na obrázku se označená user_Alice
zpráva dostane na všechna zařízení označená pomocí user_Alice
.
Výrazy značek
V některých případech musí oznámení cílit na sadu registrací identifikovaných ne jedinou značkou, ale logickým výrazem používajícím značky.
Zvažte sportovní aplikaci, která pošle všem v Bostonu připomenutí o hře mezi Red Sox a Cardinals. Pokud klientská aplikace registruje značky týkající se zájmu o týmy a umístění, mělo by být oznámení cílené na všechny uživatele v Bostonu, kteří se zajímají o Red Sox nebo Cardinals. Tuto podmínku lze vyjádřit pomocí následujícího logického výrazu:
(follows_RedSox || follows_Cardinals) && location_Boston
Výrazy značek podporují běžné logické operátory, jako AND
jsou (&&
), OR
(||
) a NOT
(!
); mohou také obsahovat závorky. Výrazy značek používající pouze OR
operátory mohou odkazovat na 20 značek; výrazy s AND
operátory, ale žádné OR
operátory nemohou odkazovat na 10 značek. V opačném případě jsou výrazy značek omezeny na 6 značek.
Tady je příklad odesílání oznámení s výrazy značek pomocí sady 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);