Compartir a través de


Cómo escribir una tarea en segundo plano para notificaciones de inserción sin procesar (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

En este tema se muestra cómo escribir una tarea en segundo plano para recibir notificaciones de red en segundo plano que usan notificaciones de inserción sin procesar en la pantalla de bloqueo de una aplicación de Windows en tiempo de ejecución. Este tema muestra cómo escribir una tarea en segundo plano para la característica de notificaciones de inserción sin procesar en Windows 8.1 para una aplicación de Windows en tiempo de ejecución.

Lo que debes saber

Tecnologías

Requisitos previos

  • La siguiente información es válida para cualquier aplicación de Windows en tiempo de ejecución conectada o habilitada para red que dependa de conexiones de red que usan notificaciones de inserción sin procesar para estar siempre conectada. Este tema se aplica a las aplicaciones escritas en JavaScript en Windows 8.1, Windows Phone 8.1 y Windows Server 2012.

    Las aplicaciones de JavaScript, las aplicaciones escritas en C++/XAML y las aplicaciones que usan .NET Framework 4.5 en C#, VB.NET, o C++ administrado, admiten conectividad de red en segundo plano usando notificaciones de inserción sin procesar. Para obtener más información acerca de las tareas de red en segundo plano aplicables a las aplicaciones JavaScript, consulta Dar soporte a tu aplicación mediante tareas en segundo plano.

Instrucciones

Escribir la tarea en segundo plano

El paso siguiente, e importante, para que la aplicación siempre esté accesible es proporcionar el código de la aplicación que se ejecuta cuando se produce una notificación de inserción sin procesar. Por ejemplo, en el caso de una aplicación de correo electrónico que usa notificaciones de inserción sin procesar para indicar que hay correo nuevo en el servidor, la aplicación necesita ejecutar código para procesar los datos de la notificación de inserción sin procesar. Estos datos podrían contener una lista de los nuevos mensajes de correo electrónico recibidos para generar una notificación para el usuario. Una aplicación también podría programar la conexión al servidor de correo y descargar los nuevos mensajes desde el servidor la próxima vez que la aplicación no esté suspendida. Este proceso se realiza en la tarea en segundo plano.

Todas las tareas en segundo plano se implementan mediante una función que se ejecuta cuando la aplicación se registra para una notificación de inserción sin procesar. Esto se especificó en el manifiesto de la aplicación como el archivo de código fuente de JavaScript específico que contiene una única función.

El ejemplo siguiente muestra la función que se ejecuta cuando una notificación de inserción sin procesar desencadena la tarea en segundo plano.

(function () {
    // Get the background task details
    var backgroundTask = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
    var settings = Windows.Storage.ApplicationData.current.localSettings;
    var taskName = backgroundTask.task.name;

    console.log("Background task \"" + taskName + "\" starting...");

    // Store the content received from the notification so it can be retrieved
    // from the UI.
    var notificationDetails = backgroundTask.triggerDetails;
    settings.values[taskName] = notificationDetails.content;

    console.log("Background \"" + taskName + "\" completed!");

    // Close the instance running the task
    close();
})();

Nota  No puedes hacer referencia a elementos de la interfaz de usuario (UI) de tu aplicación en una tarea en segundo plano porque los elementos de interfaz de usuario de tu aplicación no se están ejecutando. Cuando tu código se esté ejecutando en la tarea en segundo plano, puedes recibir los datos de la notificación de inserción sin procesar, analizar y procesar los datos y generar una notificación para el usuario.

 

La vigencia de una tarea en segundo plano se determina con la función que implementa la tarea en segundo plano. Si una aplicación sale de la función, la aplicación se suspende.

Cuando se desencadena una tarea en segundo plano de la aplicación, el sistema operativo se asegura de que la sincronización adecuada entregue los datos de la notificación de inserción sin procesar a la aplicación o que devuelva un error (conexión anulada, por ejemplo). Igualmente, al final de la tarea en segundo plano, una aplicación debe asegurarse de generar todas las notificaciones antes de que la aplicación se suspenda.

Aunque la tarea en segundo plano está destinada principalmente a una aplicación en estado suspendido, las tareas en segundo plano de una aplicación configurada con ellas también se desencadenarán cuando la aplicación esté en primer plano.

Pasos previos

Para obtener más información sobre cómo crear una aplicación de pantalla de bloqueo para que reciba notificaciones de red en segundo plano que usan notificaciones de inserción sin procesar, consulta Procedimiento para crear una aplicación de pantalla de bloqueo que usa notificaciones de inserción sin procesar en segundo plano.

Para obtener más información sobre el proceso de registrar un canal de notificaciones de inserción y enviarlo al servidor, registrar una tarea en segundo plano para que una notificación de inserción sin procesar la active, enviar una notificación de inserción sin procesar al canal y activar la tarea en segundo plano, consulta Cómo usar WNS para entregar notificaciones de inserción sin procesar a una aplicación de pantalla de bloqueo.

Para obtener más información sobre las directrices y listas de comprobación para usar notificaciones de inserción sin procesar, consulta

Directrices y lista de comprobación para notificaciones de inserción sin procesar.

Temas relacionados

Otros recursos

Agregar compatibilidad para redes

Redes en segundo plano

Directrices y lista de comprobación de notificaciones sin procesar

Cómo autenticar con los Servicios de notificaciones de inserción de Windows (WNS)

Cómo usar WNS para entregar notificaciones de inserción sin procesar a una aplicación de pantalla de bloqueo

Introducción a las pantallas de bloqueo

Introducción a las notificaciones de inserción

Procedimiento para crear una aplicación de pantalla de bloqueo que usa notificaciones de inserción sin procesar en segundo plano

Dar soporte a tu aplicación mediante tareas en segundo plano

Solución de problemas y depuración de las conexiones de red

Referencia

HttpClient

HttpClientHandler

IXMLHTTPRequest2

System.Net.Http

Windows.ApplicationModel.Background

Windows.Networking.BackgroundTransfer

Windows.Networking.PushNotifications

Windows.Networking.Sockets

Muestras

Muestra de tarea en segundo plano

Muestra de aplicaciones de pantalla de bloqueo

Ejemplo de notificaciones de inserción y periódicas del lado cliente

Ejemplo de notificaciones sin procesar