Como criar um aplicativo de tela de bloqueio que usa notificações por push brutas em segundo plano (HTML)
[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]
Este tópico mostrará como criar um aplicativo de tela de bloqueio para receber notificações de rede em segundo plano que usam notificações por push não processadas em um aplicativo do tempo de Execução do Windows. As notificações por push não processadas permitem que um aplicativo na tela de bloqueio receba notificações de rede quando o aplicativo está em segundo plano.
Objetivo: Crie um aplicativo de tela de bloqueio que recebe notificações de rede que usam notificações por push não processadas quando o aplicativo está em segundo plano.
Pré-requisitos
As informações a seguir se aplicam a qualquer aplicativo do Tempo de Execução do Windows conectado ou com reconhecimento de rede que depende de conexões de rede usando notificações por push não processadas para se manter sempre conectado. Este tópico aplica-se a aplicativos escritos em JavaScript para o Windows 8.1, Windows Phone 8.1 e Windows Server 2012 R2.
A conectividade de rede em segundo plano usando notificações por push não processadas tem suporte em aplicativos JavaScript e em aplicativos escritos em C++/XAML, bem como em aplicativos que usam o .NET Framework 4.5 em C#, VB.NET ou C++ gerenciada. Para saber mais sobre tarefas de rede em segundo plano que se aplicam a aplicativos em JavaScript, veja Dando suporte ao seu aplicativo com tarefas em segundo plano.
Criando um aplicativo de tela de bloqueio que usa notificações por push não processadas em segundo plano
Antes de poder usar notificações por push não processadas via WNS para ativar uma tarefa em segundo plano, você deve transformar o aplicativo em um aplicativo de tela de bloqueio.
Você deve definir os recursos apropriados no manifesto do aplicativo para que ele solicite que seja colocado na tela de bloqueio. Seu aplicativo também deve incluir o código para pedir para ser adicionado à tela de bloqueio e lidar com os casos onde ele é adicionado ou removido da tela de bloqueio pelo usuário.
Para ir para a tela de bloqueio, um aplicativo deve obter consentimento do usuário. O prompt de consentimento aparece quando a API de solicitação de tela de bloqueio é chamada. Se o usuário não der ao aplicativo permissão para execução na tela de bloqueio, você não poderá solicitar permissão novamente. Mas se o usuário fechar a caixa de diálogo acidentalmente, você poderá enviar o prompt novamente.
Se o usuário negar permissão ao seu aplicativo para ficar na tela de bloqueio, ele poderá adicionar o aplicativo a essa tela mais tarde por meio do submenu de permissões do sistema do aplicativo. Os usuários também podem adicionar o aplicativo à tela de bloqueio manualmente na seção Personalizar das configurações do PC.
Para solicitar a colocação de seu aplicativo na tela de bloqueio, você deve concluir as etapas a seguir. Você pode fazer alterações no manifesto do aplicativo usando o Microsoft Visual Studio 2013 para abrir o arquivo package.appxmanifest file ou modificando manualmente o manifesto.
Registrar para transformá-lo em um aplicativo de tela de bloqueio
Certifique-se de que o bloco do seu aplicativo tenha um logotipo amplo associado a ele no manifesto do aplicativo. Certifique-se de que o manifesto do aplicativo tenha definido o atributo WideLogo no elemento DefaultTile.
O exemplo a seguir adiciona um elemento DefaultTile sob a marca <VisualElements> em um manifesto do aplicativo.
<DefaultTile ShowName="allLogos" WideLogo="images\tile.png" />
Indique a intenção do seu aplicativo de usar uma tarefa em segundo plano. O manifesto do aplicativo também deve especificar o arquivo de origem JavaScript que contém a tarefa em segundo plano e o nome da classe na qual o ponto de entrada da tarefa em segundo plano é implementado.
Ao criar um aplicativo de tela de bloqueio que usa em notificações por push não processadas com WNS, especifique o arquivo de origem JavaScript e o tipo de tarefa em segundo plano pushNotification. Isso permitirá que seu aplicativo receba notificações por push não processadas WNS.
O exemplo a seguir adiciona uma notificação por push não processada sob o elemento <Application> em um manifesto de aplicativo.
<Extensions> <Extension Category="windows.backgroundTasks" StartPage="js\backgroundTask.js"> <BackgroundTasks> <Task Type="pushNotification" /> </BackgroundTasks> </Extension> </Extensions>
Como o aplicativo estará na tela de bloqueio, ele também deve ter um ícone de tela de bloqueio que possa ser usado para exibir notificações perdidas. Para habilitá-lo, atualize o manifesto do aplicativo de modo a incluir o elemento LockScreen.
O exemplo a seguir mostra um elemento LockScreen adicionado sob a marca <VisualElements> no manifesto do aplicativo.
<LockScreen Notification="badge" BadgeLogo="Images\badgelogo.png" />
Depois que você concluir as etapas anteriores, seu aplicativo poderá solicitar permissão do usuário para que seja colocado na tela de bloqueio. Os métodos Background.BackgroundExecutionManager.RequestAccessAsync apresentam ao usuário uma caixa de diálogo que solicita a adição do aplicativo à tela de bloqueio. Quando o usuário aprova a solicitação, o aplicativo pode ser executado em segundo plano e emitir notificações na tela de bloqueio.
O exemplo a seguir solicita permissão de adição à tela de bloqueio.
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"); }); }
Se você estiver criando um aplicativo de tela de bloqueio baseado em WNS usando notificações por push não processadas, o BackgroundAccessStatus para o seu aplicativo será definido como AllowedMayUseActiveRealTimeConnectivity depois que a permissão tiver sido concedida. A opção de conectividade em tempo real AllowedWithAlwaysOnRealTimeConnectivity é usada para o recurso de gatilho de rede e não afeta os aplicativos de tela de bloqueio baseados em WNS que usam notificações por push não processadas.
Depois que o aplicativo é adicionado à tela de bloqueio, ele deve ficar visível na seção Personalize=ar das configurações do PC. Os usuários podem optar por remover o aplicativo da lista de aplicativos da tela de bloqueio a qualquer momento. Por isso, você deve garantir que seu aplicativo sempre funcione, mesmo que seja removido da tela de bloqueio.
Para saber mais sobre solicitações da tela de bloqueio, consulte Visão geral da tela de bloqueio e Exemplo de aplicativos da tela de bloqueio.
Resumo e próximas etapas
Para saber mais sobre o processo de registrar um canal de notificações por push e enviá-lo ao servidor, registrar uma tarefa em segundo plano para ativar uma notificação por push não processada e enviar uma notificação por push não processada ao canal e ativar essa tarefa em segundo plano, veja Como usar o WNS para entregar notificações por push não processadas a um aplicativo de tela de bloqueio.
Para saber mais sobre como escrever uma tarefa em segundo plano de forma a receber notificações de rede em segundo plano que usam notificações por push não processadas, veja Como escrever uma tarefa em segundo plano para notificações por push não processadas.
Para saber mais sobre as orientações e listas de verificação para o uso de notificações por push não processadas, veja
Diretrizes e lista de verificação para notificações não processadas
Tópicos relacionados
Outros recursos
Diretrizes e lista de verificação para notificações não processadas
Como escrever uma tarefa em segundo plano para notificações por push não processadas
Visão geral da tela de bloqueio
Visão geral de notificação por push
Dando suporte ao seu aplicativo com tarefas em segundo plano
Visão geral de blocos e notificações de bloco
Visão geral de notificações do sistema
Transferindo dados em segundo plano
Solucionando problemas e depurando conexões de rede
Referência
Windows.ApplicationModel.Background
Windows.Networking.BackgroundTransfer
Windows.Networking.PushNotifications
Exemplos
Exemplo de tarefa de segundo plano
Exemplo de aplicativos de tela de bloqueio