Introducción a las notificaciones periódicas
Las notificaciones periódicas, también denominadas notificaciones de sondeo, actualizan los iconos y los distintivos a intervalos fijos mediante la descarga de contenido directamente desde un servicio de nube. Para usar notificaciones periódicas, el código de la aplicación cliente debe proporcionar dos fragmentos de información:
- Identificador uniforme de recursos (URI) de una ubicación web para que Windows sondee las actualizaciones de iconos o distintivos de la aplicación.
- Frecuencia con la que se debe sondear ese URI
Las notificaciones periódicas permiten a la aplicación obtener actualizaciones de iconos activas con un servicio en la nube y una inversión de cliente mínimas. Las notificaciones periódicas son un buen método de entrega para distribuir el mismo contenido a un público amplio.
Nota Puedes obtener más información descargando el ejemplo de notificaciones push y periódicas para Windows 8.1 y vuelve a usar su código fuente en tu aplicación de Windows 10.
Funcionamiento
Las notificaciones periódicas requieren que la aplicación hospede un servicio en la nube. Todos los usuarios que tengan instalada la aplicación sondearán periódicamente el servicio. En cada intervalo de sondeo, como una vez por hora, Windows envía una solicitud HTTP GET al URI, descarga el contenido de icono o distintivo solicitado (como XML) que se proporciona en respuesta a la solicitud y muestra el contenido en el icono de la aplicación.
Tenga en cuenta que las actualizaciones periódicas no se pueden usar con las notificaciones del sistema. La notificación del sistema se entrega mejor a través de notificaciones push o programadas.
Ubicación del URI y contenido XML
Cualquier dirección web HTTP o HTTPS válida se puede usar como URI que se va a sondear.
La respuesta del servidor en la nube incluye el contenido descargado. El contenido devuelto desde el URI debe ajustarse a la especificación de esquema XML tile o badge y debe estar codificada con UTF-8. Puede usar encabezados HTTP definidos para especificar la fecha de expiración o la etiqueta de la notificación.
Comportamiento de sondeo
Llame a uno de estos métodos para empezar a sondear:
- StartPeriodicUpdate (icono)
- StartPeriodicUpdate (distintivo)
- StartPeriodicUpdateBatch (Icono)
Cuando se llama a uno de estos métodos, el URI se sondea inmediatamente y el icono o distintivo se actualiza con el contenido recibido. Después de este sondeo inicial, Windows sigue proporcionando actualizaciones en el intervalo solicitado. El sondeo continúa hasta que se detiene explícitamente (con TileUpdater.StopPeriodicUpdate), la aplicación se desinstala o, en el caso de un icono secundario, se quita el icono. De lo contrario, Windows sigue sondeando las actualizaciones de tu icono o distintivo incluso si la aplicación nunca se vuelve a iniciar.
Intervalo de periodicidad
Especifique el intervalo de periodicidad como parámetro de los métodos enumerados anteriormente. Tenga en cuenta que, aunque Windows realiza un mejor esfuerzo para sondear según lo solicitado, el intervalo no es preciso. El intervalo de sondeo solicitado se puede retrasar hasta 15 minutos a discreción de Windows.
Hora de inicio
Opcionalmente, puede especificar una hora determinada del día para empezar a sondear. Considere una aplicación que cambie su contenido de icono una vez al día. En tal caso, se recomienda sondear cerca del momento en que actualice el servicio en la nube. Por ejemplo, si un sitio de compras diario publica las ofertas del día a las 8:00, sondee el nuevo contenido del icono poco después de las 8 a. m.
Si proporciona una hora de inicio, la primera llamada al método sondea el contenido inmediatamente. A continuación, el sondeo normal comienza en un plazo de 15 minutos a partir de la hora de inicio proporcionada.
Comportamiento de reintento automático
El URI solo se sondea si el dispositivo está en línea. Si la red está disponible, pero no se puede ponerse en contacto con el URI por cualquier motivo, esta iteración del intervalo de sondeo se omite y el URI se volverá a sondear en el siguiente intervalo. Si el dispositivo está en estado desactivado, inactivo o hibernado cuando se alcanza un intervalo de sondeo, el URI se sondea cuando el dispositivo vuelve de su estado desactivado o de suspensión.
Control de las actualizaciones de aplicaciones
Si publica una actualización de la aplicación que cambia el URI de sondeo, debe agregar una tarea en segundo plano de desencadenador de hora diaria que llame a StartPeriodicUpdate con el nuevo URI para asegurarse de que los iconos usan el nuevo URI. De lo contrario, si los usuarios reciben la actualización de la aplicación pero no inician la aplicación, sus iconos seguirán usando el URI anterior, lo que puede no mostrarse si el URI ahora no es válido o si la carga devuelta hace referencia a imágenes locales que ya no existen.
Expiración de las notificaciones de icono y distintivo
De forma predeterminada, las notificaciones periódicas de icono y distintivo expiran tres días a partir del momento en que se descargan. Cuando una notificación expira, el contenido se quita del distintivo, icono o cola y ya no se muestra al usuario. Es un procedimiento recomendado establecer una hora de expiración explícita en todas las notificaciones periódicas de icono y distintivo, con un tiempo que tenga sentido para la aplicación o notificación, para asegurarse de que el contenido no persista más tiempo de lo que es relevante. Un tiempo de expiración explícito es esencial para el contenido con un intervalo de vida definido. También garantiza la eliminación de contenido obsoleto si el servicio en la nube deja de ser inaccesible o si el usuario se desconecta de la red durante un período de tiempo prolongado.
El servicio en la nube establece una fecha y hora de expiración para una notificación mediante la inclusión del encabezado HTTP X-WNS-Expires en la carga de respuesta. El encabezado HTTP X-WNS-Expires se ajusta al formato HTTP-date. Para obtener más información, vea StartPeriodicUpdate o StartPeriodicUpdateBatch.
Por ejemplo, durante el día de negociación activo de un mercado de valores, puede establecer la expiración de una actualización de precios de acciones en dos veces el de su intervalo de sondeo (por ejemplo, una hora después de la recepción si está sondeando cada media hora). Otro ejemplo: una aplicación de noticias podría determinar que un día es una hora de expiración adecuada para una actualización diaria del icono de noticias.
Notificaciones periódicas en la cola de notificaciones
Puede usar actualizaciones periódicas de iconos con el ciclo de notificaciones. De forma predeterminada, un icono de la pantalla Inicio muestra el contenido de una sola notificación hasta que se reemplaza por una nueva notificación. Al habilitar el ciclo, se mantienen hasta cinco notificaciones en una cola y el icono recorre los ciclos.
Si la cola ha alcanzado su capacidad de cinco notificaciones, la siguiente nueva notificación reemplaza la notificación más antigua de la cola. Sin embargo, al establecer etiquetas en las notificaciones, puede afectar a la directiva de reemplazo de la cola. Una etiqueta es una cadena sin distinción entre mayúsculas y minúsculas específica de una aplicación de hasta 16 caracteres alfanuméricos, especificados en el encabezado HTTP X-WNS-Tag en la carga de respuesta. Windows compara la etiqueta de una notificación entrante con las etiquetas de todas las notificaciones que ya están en la cola. Si se encuentra una coincidencia, la nueva notificación reemplaza la notificación en cola por la misma etiqueta. Si no se encuentra ninguna coincidencia, se aplica la regla de reemplazo predeterminada y la nueva notificación reemplaza la notificación más antigua de la cola.
Puede usar la cola de notificaciones y el etiquetado para implementar una variedad de escenarios de notificación enriquecidos. Por ejemplo, una aplicación de stock podría enviar cinco notificaciones, cada una sobre un stock diferente y cada una etiquetada con un nombre de stock. Esto impide que la cola contenga alguna vez dos notificaciones para el mismo stock, la más antigua de la cual está obsoleta.
Para obtener más información, consulte Uso de la cola de notificaciones.
Habilitación de la cola de notificaciones
Para implementar una cola de notificaciones, habilite primero la cola para el icono (consulte Uso de la cola de notificaciones con notificaciones locales). La llamada para habilitar la cola solo debe realizarse una vez durante la vigencia de la aplicación, pero no hay ningún daño al llamarla cada vez que se inicia la aplicación.
Sondear más de una notificación a la vez
Debe proporcionar un URI único para cada notificación que quiera que Windows descargue para el icono. Mediante el método StartPeriodicUpdateBatch , puede proporcionar hasta cinco URI a la vez para su uso con la cola de notificaciones. Cada URI se sondea para una sola carga de notificación, o casi al mismo tiempo. Cada URI sondado puede devolver su propio valor de expiración y etiqueta.