Prioridades de notificación de WNS

Al establecer la prioridad de una notificación con un encabezado simple en mensajes POST de WNS, puede controlar cómo se entregan las notificaciones en situaciones sensibles a la batería.

Encendido de Windows

A medida que más usuarios trabajan solo en dispositivos con batería, minimizar el uso de energía se ha convertido en un requisito estándar para todas las aplicaciones. Si las aplicaciones consumen más energía que el valor que proporcionan, los usuarios pueden desinstalar las aplicaciones. Aunque el sistema operativo Windows reduce el uso de energía en la batería siempre que sea posible, es responsabilidad de la aplicación funcionar de forma eficaz.

Las prioridades de WNS son una manera de mover el trabajo no crítico fuera de la batería. Las prioridades de WNS indican al sistema qué notificaciones deben entregarse al instante y cuáles pueden esperar hasta que el dispositivo esté conectado a una fuente de alimentación. Con estas sugerencias, el sistema puede entregar las notificaciones el tiempo exacto que son los más valiosos tanto para el usuario como para la aplicación.

Modos de alimentación en el dispositivo

Cada dispositivo Windows funciona a través de una variedad de modos de alimentación (batería, ahorro de batería y carga) y los usuarios esperan comportamientos diferentes de las aplicaciones en diferentes modos de alimentación. Cuando el dispositivo está activado, se deben entregar todas las notificaciones. En el modo de ahorro de batería, solo se deben entregar las notificaciones más importantes. Mientras el dispositivo está conectado, se pueden completar las operaciones críticas sin sincronizar o no temporales.

Windows no sabe qué notificaciones son importantes para cualquier usuario o aplicación, por lo que el sistema se basa totalmente en las aplicaciones para establecer la prioridad adecuada para sus notificaciones.

Prioridades

Hay cuatro prioridades disponibles para que una aplicación la use al enviar notificaciones push. La prioridad se establece en las notificaciones individuales, lo que le permite elegir qué notificaciones deben entregarse al instante (por ejemplo, un mensaje instantáneo) y cuáles pueden esperar (por ejemplo, ponerse en contacto con actualizaciones de fotos).

Las prioridades son:

Priority Invalidación de usuario Descripción Ejemplo
Alto Sí: el usuario puede bloquear todas las notificaciones de una aplicación O puede impedir que una aplicación se limite en el modo de ahorro de batería. Las notificaciones más importantes que se deben entregar inmediatamente en cualquier circunstancia cuando el dispositivo pueda recibir notificaciones. Aspectos como las llamadas VoIP o las alertas críticas que deben reactivar el dispositivo entran en esta categoría. Llamadas VoIP, alertas críticas a tiempo
Media Sí: el usuario puede bloquear todas las notificaciones de una aplicación O puede impedir que una aplicación se limite en el modo de ahorro de batería. Estas son cosas que no son tan importantes, las cosas que no necesitan suceder inmediatamente, pero a los usuarios les molestaría si no se ejecutan en segundo plano. Sincronización de cuentas de Email secundaria, actualizaciones de iconos dinámicos.
Bajo Sí: el usuario puede bloquear todas las notificaciones de una aplicación O puede impedir que una aplicación se limite en el modo de ahorro de batería. Notificaciones que solo tienen sentido cuando el usuario usa el dispositivo o cuando la actividad en segundo plano tiene sentido. Estos se almacenan en caché y no se procesan hasta que el usuario inicia sesión o conecta su dispositivo. Estado de contacto (en línea o sin conexión)

Tenga en cuenta que muchas aplicaciones tendrán notificaciones de prioridad diferente a lo largo de su ciclo de vida. Puesto que la prioridad se establece por notificación, esto no es un problema. Una aplicación VoIP puede enviar una notificación de prioridad alta para una llamada entrante y, a continuación, realizar un seguimiento con una prioridad baja cuando un contacto se conecte.

Establecimiento de la prioridad

Establecer la prioridad en la solicitud de notificación se realiza a través de un encabezado adicional en la solicitud POST, X-WNS-PRIORITY. Se trata de un valor entero entre 1 y 4 que se asigna a una prioridad:

Nombre de prioridad Valor X-WNS-PRIORITY Valor predeterminado para:
Alto 1 Notificaciones del sistema
Media 2 Iconos y distintivos
Bajo 3 Raw

Para ser compatible con versiones anteriores, no es necesario establecer una prioridad. En caso de que una aplicación no establezca la prioridad de sus notificaciones, el sistema proporcionará una prioridad predeterminada. Los valores predeterminados se muestran en el gráfico anterior y coinciden con el comportamiento de las versiones existentes de Windows.

Lista detallada del comportamiento del escritorio

Si vas a enviar tu aplicación en muchas SKU diferentes de Windows, normalmente es mejor seguir el gráfico de la sección anterior.

A continuación se enumeran los comportamientos recomendados más específicos para cada prioridad. No es una garantía de que cada dispositivo funcione exactamente según el gráfico. Los OEM son libres de configurar el comportamiento de forma diferente, pero la mayoría están cerca de este gráfico.

Estado del dispositivo PRIORIDAD: Alta PRIORIDAD: Medio PRIORIDAD: Baja PRIORIDAD: Muy baja
Pantalla en OR conectada Entrega Entrega Entrega Entrega
Pantalla apagada Y en batería Entrega Si el usuario está exento: deliver Else: cache Si el usuario está exento: deliver Else: cache * Cache
Ahorro de batería habilitado Si el usuario está exento: deliver Else: cache Si el usuario está exento: deliver Else: cache Si el usuario está exento: deliver Else: cache Cache
En batería + ahorro de batería habilitado + pantalla desactivada Si el usuario está exento: deliver Else: cache Si el usuario está exento: deliver Else: cache Si el usuario está exento: deliver Else: cache Cache

Tenga en cuenta que las notificaciones de prioridad baja se entregarán de forma predeterminada para la pantalla apagada y la batería solo para dispositivos basados en Windows Phone. Esta es la compatibilidad principal con la directiva MPNS preexistente. Tenga en cuenta también que las filas cuarta y quinta son las mismas, simplemente llamando a diferentes escenarios.

Para excluir una aplicación en el ahorro de batería, los usuarios deben ir a "Uso de batería por aplicación" en Configuración y seleccionar "Permitir que la aplicación ejecute tareas en segundo plano". Esta selección de usuario excluye la aplicación del ahorro de batería para las notificaciones de prioridad alta, media y baja. También puede llamar a BackgroundExecutionManager API para solicitar mediante programación el permiso del usuario.