Compartilhar via


Ignorar universal

Ignorar Universal, desenvolvido pela Central de Ações na Nuvem, significa que, quando você dispensa uma notificação de um dispositivo, a mesma notificação em seus outros dispositivos também é descartada.

Importante

Requer atualização de aniversário: você deve direcionar o SDK 14393 e estar executando o build 14393 ou posterior para usar o Descarte Universal.

O exemplo comum desse cenário são os lembretes de calendário... Você tem um aplicativo de calendário em ambos os seus dispositivos... Você recebe um lembrete no seu telefone e desktop... você clica em dispensar na sua área de trabalho... graças ao Universal Dismiss, o lembrete no seu telefone também é descartado! Habilitar o Descarte Universal requer apenas uma linha de código!

Diagrama de dispensa universal

Nesse cenário, o fato principal é que o mesmo aplicativo está instalado em vários dispositivos, o que significa que cada dispositivo já está recebendo notificações. Um aplicativo de calendário é o exemplo icônico, já que você normalmente tem o mesmo aplicativo de calendário instalado no PC com Windows e no telefone, e cada instância do aplicativo já envia lembretes em cada dispositivo. Ao adicionar suporte para Dispensa Universal, essas instâncias dos mesmos lembretes podem ser vinculadas entre dispositivos.

Como habilitar o Descarte Universal

Como desenvolvedor, habilitar o Universal Dismiss é extremamente fácil. Você só precisa fornecer uma ID que nos permita vincular cada notificação entre dispositivos, para que, quando o usuário descartar uma notificação de um dispositivo, a notificação vinculada correspondente seja descartada do outro dispositivo.

Diagrama RemoteId de descarte universal

RemoteId: um identificador que identifica exclusivamente uma notificação entre dispositivos.

t leva apenas uma linha de código para adicionar RemoteId, habilitando o suporte para Universal Dismiss! A forma como você gera seu RemoteId depende de você, no entanto, você precisa garantir que ele identifique exclusivamente sua notificação em todos os dispositivos e que o mesmo identificador possa ser gerado a partir de diferentes instâncias do seu aplicativo em execução em diferentes dispositivos.

Por exemplo, no meu aplicativo planejador de lição de casa, gero meu RemoteId dizendo que é do tipo "lembrete" e, em seguida, incluo o ID da conta online e o identificador online do item de lição de casa. Posso gerar consistentemente exatamente o mesmo RemoteId, independentemente de qual dispositivo está enviando a notificação, já que esses IDs online são compartilhados entre os dispositivos.

var toast = new ScheduledToastNotification(content.GetXml(), startTime);
 
// If the RemoteId property is present
if (ApiInformation.IsPropertyPresent(typeof(ScheduledToastNotification).FullName, nameof(ScheduledToastNotification.RemoteId)))
{
    // Assign the RemoteId to add support for Universal Dismiss
    toast.RemoteId = $"reminder_{account.AccountId}_{homework.Identifier}"
}
  
ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast);

O código a seguir é executado no meu telefone e no aplicativo da área de trabalho, o que significa que a notificação em ambos os dispositivos terá o mesmo RemoteId.

Isso é tudo que você precisa fazer! Quando o usuário ignorar (ou clicar) em uma notificação, verificaremos se ela tem um RemoteId e, em caso afirmativo, distribuiremos um descarte desse RemoteId em todos os dispositivos do usuário.

Problema conhecido: recuperar o RemoteId por meio da ToastNotificationHistory.GetHistory() API sempre retornará uma cadeia de caracteres vazia em vez do RemoteId especificado. Não se preocupe, tudo é funcional - está apenas recuperando o valor que está quebrado.

Observação

Se o usuário ou a empresa desabilitar o espelhamento de notificação para seu aplicativo (ou desabilitar completamente o espelhamento de notificação), o Descarte Universal não funcionará, pois não temos suas notificações na nuvem.

Dispositivos com suporte

Desde a Atualização de Aniversário, o Universal Dismiss tem suporte no Windows Mobile e no Windows Desktop. O Universal Dismiss funciona em ambas as direções, entre PC-PC, PC-Phone e Phone-Phone.