Partilhar via


Roteamento e expressões de etiquetas

Visão geral

As expressões de tag permitem que você segmente conjuntos específicos de dispositivos, ou mais especificamente registros, ao enviar uma notificação por push por meio de Hubs de Notificação.

Segmentação de registos específicos

A única maneira de direcionar registros de notificação específicos é associar tags a eles e, em seguida, segmentar essas tags. Conforme discutido em Gerenciamento de registros, para receber notificações por push, um aplicativo deve registrar um identificador de dispositivo em um hub de notificação. Depois que o aplicativo cria um registro em um hub de notificação, o back-end do aplicativo pode enviar notificações por push para ele. O back-end do aplicativo pode escolher os registros a serem direcionados com uma notificação específica das seguintes maneiras:

  1. Transmissão: todos os registros no hub de notificação recebem a notificação.
  2. Tag: todos os registros que contêm a tag especificada recebem a notificação.
  3. Expressão de tag: todos os registros cujo conjunto de tags corresponda à expressão especificada recebem a notificação.

Etiquetas

Uma tag pode ser qualquer cadeia de caracteres, até 120 caracteres, contendo caracteres alfanuméricos e os seguintes caracteres não alfanuméricos: '_', '@', '#', '.', ':', '-'. O exemplo a seguir mostra uma aplicação da qual podes receber notificações toast sobre grupos de música específicos. Nesse cenário, uma maneira simples de rotear notificações é rotular registros com tags que representam as diferentes bandas, como na figura a seguir:

Visão geral das tags

Na figura, a mensagem marcada com Beatles atinge apenas o tablet que se registrou com a tag Beatles.

Para obter mais informações sobre como criar registros para tags, consulte Gerenciamento de registros.

Você pode enviar notificações para tags usando os métodos de envio de notificações da classe Microsoft.Azure.NotificationHubs.NotificationHubClient no SDK de Hubs de Notificação do Microsoft Azure. Você também pode usar Node.jsou as APIs REST de notificações por push. Aqui está um exemplo usando o 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");

As tags não devem ser pré-provisionadas e podem se referir a vários conceitos específicos do aplicativo. Por exemplo, os utilizadores desta aplicação de exemplo podem comentar sobre bandas e querem receber notificações, não só para os comentários sobre as suas bandas favoritas, mas também para todos os comentários dos seus amigos, independentemente da banda sobre a qual estão a comentar. A figura a seguir destaca um exemplo desse cenário:

Marcar amigos

Neste exemplo, Alice está interessada em atualizações para os Beatles, e Bob está interessado em atualizações para os Wailers. Bob também está interessado nos comentários de Charlie e Charlie está interessado nos Wailers. Quando uma notificação é enviada sobre o comentário de Charlie nos Beatles, os Hubs de Notificação enviam-na para Alice e Bob.

Embora você possa codificar várias preocupações em tags (por exemplo, band_Beatles ou follows_Charlie), as tags são cadeias de caracteres simples e não propriedades com valores. Um registo depende apenas da presença ou ausência de uma etiqueta específica.

Para obter um tutorial passo a passo completo sobre como usar tags para enviar a grupos de interesse, consulte Últimas notícias.

Observação

Os Hubs de Notificação do Azure dão suporte a um máximo de 60 tags por registro.

Usando tags para segmentar usuários

Outra maneira de usar tags é identificar todos os dispositivos associados a um determinado usuário. Você pode marcar um Registro com uma tag que contém o ID do usuário, como na figura a seguir:

Marcar utilizadores

Na figura, a mensagem marcada user_Alice alcança todos os dispositivos marcados com user_Alice.

Expressões de etiquetas

Há casos em que as notificações devem ter como alvo um conjunto de registros identificados não por uma única tag, mas por uma expressão booleana usando tags.

Considere um aplicativo esportivo que envia um lembrete para todos em Boston sobre um jogo entre o Red Sox e o Cardinals. Se o aplicativo cliente registrar tags sobre interesse em equipes e localização, a notificação deve ser direcionada a todos em Boston que estejam interessados no Red Sox ou nos Cardinals. Esta condição pode ser expressa com a seguinte expressão booleana:

(follows_RedSox || follows_Cardinals) && location_Boston

Expressões de tags

As expressões de tag suportam operadores booleanos comuns, como AND (&&), OR (||), e NOT (!); elas também podem conter parênteses. Expressões de tag usando apenas OR operadores podem fazer referência a 20 tags, expressão com AND operadores, mas nenhum OR operador pode fazer referência a 10 tags, caso contrário, expressões de tag são limitadas a 6 tags.

Aqui está um exemplo para enviar notificações com expressões de tag usando o 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);