Dela via


Routning och tagguttryck

Översikt

Med tagguttryck kan du rikta in dig på specifika uppsättningar av enheter, eller mer specifikt registreringar, när du skickar ett push-meddelande via Notification Hubs.

Rikta in sig på specifika registreringar

Det enda sättet att rikta in sig på specifika meddelanderegistreringar är att associera taggar med dem och sedan rikta in sig på taggarna. Som beskrivs i Registreringshantering måste en app registrera ett enhetshandtag på en meddelandehubb för att kunna ta emot push-meddelanden. När appen har skapat en registrering på en meddelandehubb kan programserverdelen skicka push-meddelanden till den. Programserverdelen kan välja vilka registreringar som ska riktas mot ett specifikt meddelande på följande sätt:

  1. Sändning: alla registreringar i meddelandehubben tar emot meddelandet.
  2. Tagg: alla registreringar som innehåller den angivna taggen får meddelandet.
  3. Tagguttryck: alla registreringar vars uppsättning taggar matchar det angivna uttrycket får meddelandet.

Taggar

En tagg kan vara valfri sträng, upp till 120 tecken, som innehåller alfanumeriska tecken och följande icke-alfanumeriska tecken: '_', '@', '#', '.', ':', '-'. I följande exempel visas en applikation där du kan ta emot toastmeddelanden om specifika musikgrupper. I det här scenariot är ett enkelt sätt att dirigera meddelanden att märka registreringar med taggar som representerar de olika banden, som i följande bild:

Översikt över taggar

I bilden når meddelandet som är taggat med Beatles endast surfplattan som registrerades med taggen Beatles.

Mer information om hur du skapar registreringar för taggar finns i Registreringshantering.

Du kan skicka meddelanden till taggar med hjälp av metoderna för att skicka meddelanden för Microsoft.Azure.NotificationHubs.NotificationHubClient klassen i Microsoft Azure Notification Hubs SDK. Du kan också använda Node.jseller REST API:er för push-meddelanden. Här är ett exempel med hjälp av 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");

Taggar får inte vara företablerade och kan referera till flera appspecifika begrepp. Till exempel kan användare av det här exempelprogrammet kommentera band och vill ta emot popup-meddelanden, inte bara för kommentarer om sina favoritband, utan även för alla kommentarer från sina vänner, oavsett vilket band de kommenterar. Följande bild visar ett exempel på det här scenariot:

Taggar vänner

I det här exemplet är Alice intresserad av uppdateringar för Beatles och Bob är intresserad av uppdateringar för Wailers. Bob är också intresserad av Charlies kommentarer, och Charlie är intresserad av Wailers. När ett meddelande skickas för Charlies kommentar om Beatles skickar Notification Hubs det till både Alice och Bob.

Du kan koda flera aspekter i taggar (till exempel band_Beatles eller follows_Charlie), men taggar är enkla strängar och inte egenskaper med värden. En registrering matchar endast på förekomst eller frånvaro av en specifik tagg.

En fullständig stegvis självstudie om hur du använder taggar för att skicka till intressegrupper finns i Senaste nytt.

Anmärkning

Azure Notification Hubs stöder högst 60 taggar per registrering.

Använda taggar för att rikta in sig på användare

Ett annat sätt att använda taggar är att identifiera alla enheter som är associerade med en viss användare. Du kan tagga en registrering med en tagg som innehåller användar-ID:t, som i följande bild:

Tagga användare

I bilden når meddelandet som är taggat user_Alice alla enheter som är taggade med user_Alice.

Tagguttryck

Det finns fall där meddelanden måste rikta in sig på en uppsättning registreringar som inte identifieras med en enda tagg, utan med ett booleskt uttryck med hjälp av taggar.

Överväg ett sportprogram som skickar en påminnelse till alla i Boston om ett spel mellan Red Sox och Cardinals. Om klientappen registrerar taggar om intresse för team och plats bör meddelandet riktas till alla i Boston som är intresserade av antingen Red Sox eller Cardinals. Det här villkoret kan uttryckas med följande booleska uttryck:

(follows_RedSox || follows_Cardinals) && location_Boston

Tagguttryck

Tagguttryck stöder vanliga booleska operatorer som AND (&&), OR (||) och NOT (!); de kan också innehålla parenteser. Tagguttryck som bara OR använder operatorer kan referera till 20 taggar; uttryck med AND operatorer men inga OR operatorer kan referera till 10 taggar. Annars är tagguttryck begränsade till 6 taggar.

Här är ett exempel för att skicka meddelanden med tagguttryck med hjälp av 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);