Descartar Universal

Descartar universal, con tecnología del Centro de actividades en la nube, significa que al descartar una notificación de un dispositivo, también se descarta la misma notificación en los demás dispositivos.

Importante

Requiere actualización de aniversario: debe tener como destino el SDK 14393 y ejecutar la compilación 14393 o posterior para usar El descarte universal.

El ejemplo común de este escenario es recordatorios de calendario... tiene una aplicación de calendario en ambos dispositivos... usted recibe un recordatorio en su teléfono y escritorio... haga clic en descartar en el escritorio... gracias a Universal Dismiss, el aviso en su teléfono también se descarta! La habilitación de Descartar universal solo requiere una línea de código.

Diagrama de descarte universal

En este escenario, el hecho clave es que la misma aplicación está instalada en varios dispositivos, lo que significa que cada dispositivo ya recibe notificaciones. Una aplicación de calendario es el ejemplo emblemático, ya que normalmente tienes instalada la misma aplicación de calendario tanto en tu PC Windows como en tu teléfono, y cada instancia de la aplicación ya te envía recordatorios en cada dispositivo. Al agregar compatibilidad con Descartar universal, esas instancias de los mismos avisos se pueden vincular entre dispositivos.

Habilitación del descarte universal

Como desarrollador, habilitar El descarte universal es extremadamente fácil. Basta con proporcionar un identificador que nos permita vincular cada notificación entre dispositivos, de modo que cuando el usuario descarte una notificación de un dispositivo, la notificación vinculada correspondiente se descarta del otro dispositivo.

Diagrama de RemoteId de descarte universal

RemoteId: identificador que identifica de forma única una notificación entre dispositivos.

t solo toma una línea de código para agregar RemoteId, lo que habilita la compatibilidad con Descartar universal. La forma de generar el RemoteId depende de usted; sin embargo, debe asegurarse de que identifica de forma única la notificación entre dispositivos y que el mismo identificador se puede generar a partir de diferentes instancias de la aplicación que se ejecutan en distintos dispositivos.

Por ejemplo, en mi aplicación de planificador de tareas, generar mi RemoteId diciendo que es de tipo "recordatorio" y luego incluí el identificador de cuenta en línea y el identificador en línea del elemento de tarea. Puedo generar de forma coherente el mismo RemoteId exacto, independientemente del dispositivo que envía la notificación, ya que estos identificadores en línea se comparten entre los 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);

El código siguiente se ejecuta tanto en mi teléfono como en la aplicación de escritorio, lo que significa que la notificación en ambos dispositivos tendrá el mismo RemoteId.

¡Eso es todo lo que tienes que hacer! Cuando el usuario descarte (o haga clic en) una notificación, comprobaremos si tiene un RemoteId y, si es así, se descartará ese RemoteId en todos los dispositivos del usuario.

Problema conocido: recuperar el RemoteId a través de la ToastNotificationHistory.GetHistory() API siempre devolverá una cadena vacía en lugar del RemoteId especificado. No te preocupes, todo es funcional: solo se recupera el valor que está roto.

Nota

Si el usuario o la empresa deshabilita la creación de reflejo de notificaciones para la aplicación (o deshabilita completamente la creación de reflejo de notificaciones), el descarte universal no funcionará, ya que no tenemos las notificaciones en la nube.

Dispositivos admitidos

Desde la actualización de aniversario, el descarte universal se admite en Windows Mobile y escritorio de Windows. Descartar universal funciona en ambas direcciones, entre PC-PC, PC-Phone y Phone-Phone.