Prioridades de notificação do WNS

Ao definir a prioridade de uma notificação com um cabeçalho simples para mensagens POST do WNS, você pode controlar como as notificações são entregues em situações sensíveis à bateria.

Ligar o Windows

À medida que mais usuários estão trabalhando apenas em dispositivos movidos a bateria, minimizar o uso de energia tornou-se um requisito padrão para todos os aplicativos. Se os aplicativos consumirem mais energia do que o valor fornecido, os usuários poderão desinstalar os aplicativos. Embora o sistema operacional Windows reduza o uso de energia na bateria sempre que possível, é responsabilidade do aplicativo trabalhar com eficiência.

As prioridades do WNS são uma maneira de tirar o trabalho não crítico da bateria. As prioridades do WNS informam ao sistema quais notificações devem ser entregues instantaneamente e quais podem esperar até que o dispositivo seja conectado a uma fonte de energia. Com essas dicas, o sistema pode fornecer as notificações na hora exata em que elas são as mais valiosas para o usuário e o aplicativo.

Modos de energia no dispositivo

Cada dispositivo Windows opera por meio de uma variedade de modos de energia (bateria, economia de bateria e carga), e os usuários esperam comportamentos diferentes de aplicativos em diferentes modos de energia. Quando o dispositivo estiver ativado, todas as notificações deverão ser entregues. No modo de economia de bateria, somente as notificações mais importantes devem ser entregues. Enquanto o dispositivo estiver conectado, as operações críticas de sincronização ou não tempo podem ser concluídas.

O Windows não sabe quais notificações são importantes para qualquer usuário ou aplicativo, portanto, o sistema depende totalmente dos aplicativos para definir a prioridade certa para suas notificações.

Prioridades

Há quatro prioridades disponíveis para um aplicativo usar ao enviar notificações por push. A prioridade é definida em notificações individuais, permitindo que você escolha quais notificações precisam ser entregues instantaneamente (por exemplo, uma mensagem instantânea) e quais podem aguardar (por exemplo, atualizações de fotos de contato).

As prioridades são:

Prioridade Substituição do usuário Descrição Exemplo
Alto Sim – o usuário pode bloquear todas as notificações de um aplicativo OU pode impedir que um aplicativo seja limitado no modo de economia de bateria. As notificações mais importantes que devem ser entregues imediatamente em qualquer circunstância em que o dispositivo possa receber notificações. Itens como chamadas VoIP ou alertas críticos que devem ativar o dispositivo se enquadram nessa categoria. Chamadas VoIP, alertas críticos de tempo
Médio Sim – o usuário pode bloquear todas as notificações de um aplicativo OU pode impedir que um aplicativo seja limitado no modo de economia de bateria. Essas são coisas que não são tão importantes, coisas que não precisam acontecer imediatamente, mas os usuários ficariam irritados se não estivessem em execução em segundo plano. Sincronização de conta Email secundária, atualizações de bloco dinâmico.
Baixo Sim – o usuário pode bloquear todas as notificações de um aplicativo OU pode impedir que um aplicativo seja limitado no modo de economia de bateria. Notificações que só fazem sentido quando o usuário está usando o dispositivo ou quando a atividade em segundo plano faz sentido. Eles são armazenados em cache e não processados até que o usuário entre ou conecte seu dispositivo. Entrar em contato com status (online/offline)

Observe que muitos aplicativos terão notificações de prioridade diferente durante todo o ciclo de vida. Como a prioridade é definida por notificação, isso não é um problema. Um aplicativo VoIP pode enviar uma notificação de alta prioridade para uma chamada de entrada e, em seguida, segui-la com uma de baixa prioridade quando um contato fica online.

Definindo a prioridade

A definição da prioridade na solicitação de notificação é feita por meio de um cabeçalho adicional na solicitação POST, X-WNS-PRIORITY. Esse é um valor inteiro entre 1 e 4 que é mapeado para uma prioridade:

Nome da prioridade Valor X-WNS-PRIORITY Padrão para:
Alta 1 Notificações do sistema
Médio 2 Blocos e selos
Baixo 3 Raw

Para ser compatível com versões anteriores, não é necessário definir uma prioridade. Caso um aplicativo não defina a prioridade de suas notificações, o sistema fornecerá uma prioridade padrão. Os padrões são mostrados no gráfico acima e correspondem ao comportamento das versões existentes do Windows.

Listagem detalhada do comportamento da área de trabalho

Se você estiver enviando seu aplicativo em vários SKUs diferentes do Windows, normalmente é melhor seguir o gráfico na seção acima.

Comportamentos recomendados mais específicos para cada prioridade estão listados abaixo. Essa não é uma garantia de que cada dispositivo funcionará exatamente de acordo com o gráfico. Os OEMs são livres para configurar o comportamento de forma diferente, mas a maioria está próxima desse gráfico.

Estado do Dispositivo PRIORIDADE: Alta PRIORIDADE: Médio PRIORIDADE: Baixa PRIORIDADE: muito baixo
Tela Ativada OU conectada Fornecimento Fornecimento Fornecimento Fornecimento
Tela Desativada E na bateria Fornecimento Se o usuário estiver isento: entregar Caso contrário: cache Se o usuário estiver isento: entregar Caso contrário: cache * Cache
Economia de bateria habilitada Se o usuário estiver isento: entregar Caso contrário: cache Se o usuário estiver isento: entregar Caso contrário: cache Se o usuário estiver isento: entregar Caso contrário: cache Cache
Na bateria + economia de bateria habilitada + tela desativada Se o usuário estiver isento: entregar Caso contrário: cache Se o usuário estiver isento: entregar Caso contrário: cache Se o usuário estiver isento: entregar Caso contrário: cache Cache

Observe que as notificações de baixa prioridade serão entregues por padrão para a tela desligada e bateria somente para dispositivos baseados em Windows Phone. Isso é para a compatibilidade principal com a política MPNS preexistante. Observe também que a quarta e a quinta linhas são as mesmas, apenas chamando cenários diferentes.

Para isentar um aplicativo na economia de bateria, os usuários devem ir para o "Uso da Bateria por Aplicativo" em Configurações e selecionar "Permitir que o aplicativo execute tarefas em segundo plano". Essa seleção de usuário isenta o aplicativo da economia de bateria para notificações de alta, média e baixa prioridade. Você também pode chamar a API BackgroundExecutionManager para solicitar programaticamente a permissão do usuário.