Routering en labelexpressies

Overzicht

Met tagexpressies kunt u zich richten op specifieke sets apparaten, of meer specifiek registraties, bij het verzenden van een pushmelding via Notification Hubs.

Gericht op specifieke registraties

De enige manier om specifieke meldingsregistraties te richten, is door tags eraan te koppelen en vervolgens op die tags te richten. Zoals beschreven in Registratiebeheer, moet een app een apparaatingang registreren op een Notification Hub om pushmeldingen te ontvangen. Zodra de app een registratie op een Notification Hub heeft gemaakt, kan de back-end van de toepassing pushmeldingen naar de app verzenden. De back-end van de toepassing kan op de volgende manieren de registraties kiezen waarop een specifieke melding moet worden gericht:

  1. Uitzenden: alle registraties in de Notification Hub ontvangen de melding.
  2. Tag: alle registraties die de opgegeven tag bevatten, ontvangen de melding.
  3. Tagexpressie: alle registraties waarvan de set tags overeenkomt met de opgegeven expressie, ontvangen de melding.

Tags

Een tag kan elke tekenreeks zijn, maximaal 120 tekens, met alfanumerieke en de volgende niet-alfanumerieke tekens: '_', '@', '#', '.', ':', '-'. In het volgende voorbeeld ziet u een toepassing van waaruit u pop-upmeldingen over specifieke muziekgroepen kunt ontvangen. In dit scenario is een eenvoudige manier om meldingen te routeren het labelen van registraties met tags die de verschillende banden vertegenwoordigen, zoals in de volgende afbeelding:

Overzicht van tags

In de afbeelding bereikt het bericht met de tag Beatles alleen de tablet die is geregistreerd met de tag Beatles.

Zie Registratiebeheer voor meer informatie over het maken van registraties voor tags.

U kunt meldingen verzenden naar tags met behulp van de methoden voor het verzenden van meldingen van de Microsoft.Azure.NotificationHubs.NotificationHubClient klasse in de Microsoft Azure Notification Hubs SDK. U kunt ook Node.js of de REST API's voor pushmeldingen gebruiken. Hier volgt een voorbeeld met behulp van de 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");

Tags mogen niet vooraf zijn ingericht en kunnen verwijzen naar meerdere app-specifieke concepten. Gebruikers van deze voorbeeldtoepassing kunnen bijvoorbeeld opmerkingen maken bij bands en willen pop-ups ontvangen, niet alleen voor de opmerkingen over hun favoriete bands, maar ook voor alle opmerkingen van hun vrienden, ongeacht de band waarop ze opmerkingen plaatsen. In de volgende afbeelding ziet u een voorbeeld van dit scenario:

Tags vrienden

In dit voorbeeld is Alice geïnteresseerd in updates voor de Beatles en Bob in updates voor de Wailers. Bob is ook geïnteresseerd in Charlie's opmerkingen, en Charlie is geïnteresseerd in de Wailers. Wanneer er een melding wordt verzonden voor Charlie's opmerking op de Beatles, stuurt Notification Hubs deze naar zowel Alice als Bob.

Hoewel u meerdere problemen in tags kunt coderen (bijvoorbeeld band_Beatles of follows_Charlie), zijn tags eenvoudige tekenreeksen en geen eigenschappen met waarden. Een registratie komt alleen overeen met de aanwezigheid of afwezigheid van een specifieke tag.

Zie Breaking News voor een volledige stapsgewijze zelfstudie over het gebruik van tags voor het verzenden naar belangengroepen.

Notitie

Azure Notification Hubs ondersteunt maximaal 60 tags per registratie.

Tags gebruiken om gebruikers te targeten

Een andere manier om tags te gebruiken, is door alle apparaten te identificeren die aan een bepaalde gebruiker zijn gekoppeld. U kunt een registratie taggen met een tag die de gebruikers-id bevat, zoals in de volgende afbeelding:

Gebruikers taggen

In de afbeelding bereikt het getagde user_Alice bericht alle apparaten met user_Alicede tag .

Tagexpressies

Er zijn gevallen waarin meldingen gericht moeten zijn op een set registraties die niet wordt geïdentificeerd door één tag, maar door een Boole-expressie met behulp van tags.

Denk aan een sporttoepassing die een herinnering stuurt naar iedereen in Boston over een wedstrijd tussen de Red Sox en Cardinals. Als de client-app tags registreert over interesse in teams en locatie, moet de melding worden gericht aan iedereen in Boston die geïnteresseerd is in de Red Sox of de Cardinals. Deze voorwaarde kan worden uitgedrukt met de volgende Booleaanse expressie:

(follows_RedSox || follows_Cardinals) && location_Boston

Tagexpressies

Labelexpressies ondersteunen algemene Booleaanse operatoren, zoals AND (&&), OR (||) en NOT (!). Ze kunnen ook haakjes bevatten. Tagexpressies die alleen OR operators gebruiken, kunnen verwijzen naar 20 tags; expressies met AND operators, maar geen OR operators kunnen verwijzen naar 10 tags; anders zijn tagexpressies beperkt tot 6 tags.

Hier volgt een voorbeeld voor het verzenden van meldingen met tagexpressies met behulp van de 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);