Cómo crear una aplicación de pantalla de bloqueo que usa notificaciones de inserción sin procesar en segundo plano (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 crear una aplicación de bloqueo de pantalla para que reciba notificaciones de red en segundo plano que usan notificaciones de inserción sin procesar en una aplicación de Windows en tiempo de ejecución. Las notificaciones de inserción sin procesar permiten que las aplicaciones de pantalla de bloqueo reciban notificaciones de red cuando la aplicación está en segundo plano.
Objetivo: Crea una aplicación de pantalla de bloqueo que recibe notificaciones de red que usan notificaciones de inserción sin procesar cuando la aplicación está en segundo plano.
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 para Windows 8.1, Windows Phone 8.1 y Windows Server 2012 R2.
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.
Crear una aplicación de pantalla de bloqueo que usa notificaciones de inserción sin procesar en segundo plano
Para poder usar las notificaciones de inserción sin procesar a través de WNS para activar una tarea en segundo plano, debes convertir tu aplicación en una aplicación de pantalla de bloqueo.
Debes establecer las capacidades adecuadas en el manifiesto de la aplicación para que las solicitudes de tu aplicación se coloquen en la pantalla de bloqueo. Tu aplicación también debe incluir código para solicitar su adición a la pantalla de bloqueo y para administrar casos en los que el usuario la agrega o quita de esta pantalla.
Para aparecer en la pantalla de bloqueo, la aplicación debe obtener el consentimiento del usuario. La petición de consentimiento aparece cuando se llama a la API de solicitud de pantalla de bloqueo. Si el usuario no da permiso a tu aplicación para ejecutarse en la pantalla de bloqueo, no podrás pedirlo otra vez. De todos modos, si el usuario descarta el cuadro de diálogo por accidente, podrás volver a pedir permiso.
Si el usuario deniega a tu aplicación el permiso para ser una aplicación de pantalla de bloqueo, aún pueden agregarla a la pantalla de bloqueo más adelante mediante el control flotante de permisos del sistema para tu aplicación. Los usuarios también pueden agregar manualmente tu aplicación a la pantalla de bloqueo desde la sección Personalizar de Configuración.
Para solicitar que se coloque tu aplicación en la pantalla de bloqueo, debes completar estos pasos. Puedes hacer cambios en el manifiesto de la aplicación usando Microsoft Visual Studio 2013 para abrir el archivo package.appxmanifest o modificando el manifiesto de la aplicación manualmente.
Registrar para convertirla en aplicación de pantalla de bloqueo
Asegúrate de que el icono de tu aplicación tenga un logotipo ancho asociado en el manifiesto de la aplicación. Asegúrate de que el manifiesto de la aplicación tenga definido el atributo WideLogo en el elemento DefaultTile.
La siguiente muestra agrega un elemento DefaultTile bajo el elemento <VisualElements> en el manifiesto de la aplicación.
<DefaultTile ShowName="allLogos" WideLogo="images\tile.png" />
Indica la intención de tu aplicación de usar una tarea en segundo plano. El manifiesto de la aplicación debe especificar también el archivo de código fuente de JavaScript que contiene la tarea en segundo plano y el nombre de la clase donde se implementa el punto de entrada de la tarea en segundo plano.
Cuando vayas a crear una aplicación de pantalla de bloqueo que usa notificaciones de inserción sin procesar con WNS, especifica el archivo de código fuente de JavaScript y el tipo de tarea en segundo plano pushNotification. Esto permitirá que la aplicación reciba notificaciones de inserción sin procesar de WNS.
En el siguiente ejemplo se agrega una notificación de inserción sin procesar bajo el elemento <Application> en un manifiesto de la aplicación.
<Extensions> <Extension Category="windows.backgroundTasks" StartPage="js\backgroundTask.js"> <BackgroundTasks> <Task Type="pushNotification" /> </BackgroundTasks> </Extension> </Extensions>
Como tu aplicación aparecerá en la pantalla de bloqueo, también debe tener un icono de pantalla de bloqueo que sirva para mostrar las notificaciones que se han pasado por alto. Para habilitar esto, actualiza el manifiesto de la aplicación para que incluya el elemento LockScreen.
La siguiente muestra enseña un elemento LockScreen agregado bajo el elemento <VisualElements> en un manifiesto de la aplicación.
<LockScreen Notification="badge" BadgeLogo="Images\badgelogo.png" />
Después de completar los pasos anteriores, tu aplicación puede solicitar permiso al usuario para colocarse en la pantalla de bloqueo. Los métodos Background.BackgroundExecutionManager.RequestAccessAsync presentan al usuario un cuadro de diálogo que solicita que se agregue una aplicación a la pantalla de bloqueo. Si el usuario aprueba la solicitud, tu aplicación se puede ejecutar en segundo plano y mostrar notificaciones en la pantalla de bloqueo.
La siguiente muestra solicita permiso para colocar una aplicación en la pantalla de bloqueo.
var lockScreenAdded = false; function ClientInit() { // Lock screen is required for raw push notification // background code to run. // if (lockScreenAdded == false) { BackgroundExecutionManager.RequestAccessAsync().done(function (result) { switch (result) { case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnectivity: // // App is allowed to use RealTimeConnection broker // functionality even in low power mode. // lockScreenAdded = true; break; case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity: // // App is allowed to use RealTimeConnection broker // functionality but not in low power mode. // lockScreenAdded = true; break; case BackgroundAccessStatus.Denied: // // App should switch to polling mode (example: poll for email based on time triggers) // WinJS.log && WinJS.log("Lock screen access is denied", "sample", "status"); break; } }, function (e) { WinJS.log && WinJS.log("An error occurred while requesting lock screen access.", "sample", "error"); }); }
Cuando vayas a crear una aplicación de pantalla de bloqueo basada en WNS con notificaciones de inserción sin procesar, el BackgroundAccessStatus de tu aplicación se establecerá en AllowedMayUseActiveRealTimeConnectivity una vez concedido el permiso. La opción de conectividad en tiempo real AllowedWithAlwaysOnRealTimeConnectivity se usa para la característica de desencadenador de red y no afecta a las aplicaciones de pantalla de bloqueo basadas en WNS que usan notificaciones de inserción sin procesar.
Después de agregarse tu aplicación a la pantalla de bloqueo, debería estar visible en la sección Personalizar de Configuración. Ten en cuenta que los usuarios pueden optar por quitar la aplicación de la lista de aplicaciones de pantalla de bloqueo en cualquier momento, así que debes asegurarte de que tu aplicación esté siempre funcional, incluso cuando se quite de la pantalla de bloqueo.
Para obtener más información sobre las solicitudes de pantalla de bloqueo, consulta la introducción a la pantalla de bloqueo y la muestra de aplicaciones de pantalla de bloqueo.
Resumen y siguientes pasos
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 cómo escribir una tarea en segundo plano para recibir notificaciones de red en segundo plano que usan notificaciones de inserción sin procesar, consulta Cómo escribir una tarea en segundo plano para notificaciones de inserción sin procesar.
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
Introducción a los distintivos
Directrices y lista de comprobación de notificaciones sin procesar
Cómo escribir una tarea en segundo plano para notificaciones de inserción sin procesar
Introducción a las pantallas de bloqueo
Introducción a las notificaciones de inserción
Dar soporte a tu aplicación mediante tareas en segundo plano
Introducción a los iconos y a las notificaciones de icono
Introducción a las notificaciones del sistema
Transferencia de datos en segundo plano
Solución de problemas y depuración de las conexiones de red
Referencia
Windows.ApplicationModel.Background
Windows.Networking.BackgroundTransfer
Windows.Networking.PushNotifications
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