Espressioni di routing e tag

Le espressioni tag consentono di avere come destinazione set specifici di dispositivi, o più specificamente registrazioni, quando si invia una notifica push tramite hub di notifica.

Scelta di registrazioni di destinazione specifiche

L'unico modo per scegliere una registrazione di destinazione specifica consiste nell'associare a un tag e quindi scegliere il tag come destinazione. Come descritto in Gestione delle registrazioni, per ricevere le notifiche push un'app deve registrare un handle di dispositivo in un hub di notifica push. Dopo aver creato una registrazione su un hub di notifica, il back-end dell'applicazione può inviare ad esso notifiche push.

Il back-end dell'applicazione può scegliere le registrazioni da utilizzare come destinazione con una notifica specifica nei modi seguenti:

  1. Trasmissione: tutte le registrazioni nell'hub di notifica ricevono la notifica.

  2. Tag: tutte le registrazioni contenenti il tag specificato ricevono la notifica.

  3. Espressione tag: tutte le registrazioni il cui set di tag corrisponde all'espressione specificata ricevono la notifica.

Nota

Quando si invia un payload specifico della piattaforma (ad esempio una notifica specifica di Windows Store), solo le registrazioni per quella piattaforma specifica riceveranno la notifica. Quando si invia una notifica modello, la ricevono solo le registrazioni che specificano un modello. Per altre informazioni, vedere Gestione delle registrazioni.

Tag

Un tag può essere qualsiasi stringa, fino a 120 caratteri, che contiene caratteri alfanumerici e i caratteri non alfanumerici seguenti: ‘_’, ‘@’, ‘#’, ‘.’, ‘:’, ‘-’. Nell'esempio seguente viene illustrata un'applicazione da cui è possibile ricevere notifiche di tipo avviso popup su gruppi musicali specifici. In questo scenario, un modo semplice per instradare le notifiche è etichettare le registrazioni con tag che rappresentano i diversi gruppi musicali, come illustrato nell'immagine seguente.

Tag Expressions

In questa immagine, il messaggio con tag Beatles raggiunge solo il tablet registrato con il tag Beatles.

Per ulteriori informazioni sulla creazione di registrazioni per i tag, vedere Gestione delle registrazioni.

È possibile inviare notifiche ai tag usando i metodi di invio delle notifiche della classe Microsoft.ServiceBus.Notifications.NotificationHubClient nell'SDK. È anche possibile usare Node.js o le API REST notifiche push.

Osservare gli esempi seguenti:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "tag");
notificationHubService.wns.sendToastText01('tag', {
            text1: 'Hello World!'
        }, callback);

Per tag non deve necessariamente essere eseguito il pre-provisioning e questi possono fare riferimento a più concetti specifici dell'app. Ad esempio, gli utenti di questa applicazione di esempio possono commentare i gruppi e desiderano ricevere avvisi popup, non solo per i commenti sui propri gruppi preferiti, ma anche per tutti i commenti degli amici, indipendentemente dal gruppo che stanno commentando. Nell'immagine seguente viene illustrato un esempio di questo scenario:

Tag Expressions

In questa immagine, Alice è interessata a ricevere aggiornamenti sui Beatles e Bob è interessato a ricevere aggiornamenti sui Wailers. Bob è anche interessato ai commenti di Charlie e Charlie è interessato ai Wailers. Quando viene inviata una notifica per un commento di Charlie sui Beatles, sia Alice che Bob la ricevono.

Importante

Sebbene sia possibile codificare più aspetti nei tag (ad esempio "band_Beatles" o "follows_Chanrlie"), i tag sono semplici stringhe e non proprietà con valori. Esiste una corrispondenza per la registrazione solo in presenza o assenza di un tag specifico.

Per un'esercitazione completa dettagliata su come usare i tag per l'invio a gruppi di interesse, vedere Ultime notizie.

Nota

Nell'esempio precedente, è consigliabile inviare una singola notifica a due tag (fornendo una matrice di tag o usando un'espressione tag con OR), anziché due notifiche. L'invio di due notifiche a singoli tag genera duplicati per le registrazioni che presentano entrambi i tag, mentre ciò non avviene usando espressioni tag.

Uso di tag per scegliere utenti di destinazione specifici

Un altro modo per utilizzare i tag consiste nell'identificare tutti i dispositivi di un particolare utente. Le registrazioni possono essere contrassegnate con un tag che contiene un id utente, come illustrato nell'immagine seguente:

Tag Expressions

In questa immagine, il messaggio con tag uid:Alice raggiunge tutte le registrazioni con tag uid:Alice, ovvero tutti i dispositivi di Alice.

Espressioni tag

Vi sono casi in cui una notifica ha come destinazione un set di registrazioni identificato non da un singolo tag, ma da un'espressione booleana su tag.

Si consideri un'applicazione sportiva che invia un promemoria su una partita tra Red Sox e Cardinals a tutte le persone di Boston. Se l'app client registra i tag relativi all'interesse per squadre e località, la notifica deve essere destinata a tutte le persone di Boston interessate ai Red Sox o ai Cardinals. Questa condizione può essere espressa con l'espressione booleana seguente:

(follows_RedSox || follows_Cardinals) && location_Boston

Tag Expressions

Le espressioni tag possono contenere tutti gli operatori booleani, ad esempio AND (), OR (&&||) e NOT (!). Possono inoltre contenere parentesi. Le espressioni tag sono limitate a 20 tag se contengono solo operatori OR; in caso contrario sono limitate a 6 tag.

È possibile inviare notifiche alle espressioni di tag usando i metodi di invio delle notifiche della classe Microsoft.ServiceBus.Notifications.NotificationHubClient nell'SDK. È anche possibile usare Node.js o le API REST notifiche push. Osservare gli esempi seguenti:

await hub.SendWindowsNativeNotificationAsync(wnsToast, "(tagA && !tagB)");
notificationHubService.wns.sendToastText01('(tagA && !tagB)', {
            text1: 'Hello World!'
        }, callback);

Vedere anche

Risorse aggiuntive

Informazioni di riferimento sulle API
esercitazione sull'invio delle ultime notizie
Inviare notifiche agli utenti esercitazione