Visão geral de notificações periódicas

Notificações periódicas, que são chamadas também de notificações de sondagem, atualizam blocos e selos em um intervalo fixo, baixando o conteúdo da nuvem. Para usar notificações periódicas, o código do aplicativo cliente precisa fornecer duas informações:

  • O URI (Uniform Resource Identifier) de um local da Web para que o Windows pesquise atualizações de bloco ou selo para seu aplicativo
  • Com que frequência esse URI deve ser pesquisado

As notificações periódicas permitem que seu aplicativo obtenha atualizações de bloco dinâmico com o mínimo de serviço de nuvem e investimento do cliente. As notificações periódicas são um bom método de entrega para distribuir o mesmo conteúdo para um público amplo.

Observação Você pode saber mais baixando o exemplo de notificações por push e periódicas para Windows 8.1 e reutilizando seu código-fonte em seu aplicativo do Windows 10.

 

Como ele funciona

As notificações periódicas exigem que seu aplicativo hospede um serviço de nuvem. O serviço será pesquisado periodicamente por todos os usuários que tiverem o aplicativo instalado. Em cada intervalo de sondagem, como uma vez por hora, o Windows envia uma solicitação HTTP GET para o URI, baixa o conteúdo do bloco ou notificação solicitado (como XML) fornecido em resposta à solicitação e exibe o conteúdo no bloco do aplicativo.

Observe que as atualizações periódicas não podem ser usadas com notificações do sistema. A notificação do sistema é melhor entregue por meio de notificações agendadas ou por push .

Local do URI e conteúdo XML

Qualquer endereço da Web HTTP ou HTTPS válido pode ser usado como o URI a ser sondado.

A resposta do servidor em nuvem inclui o conteúdo baixado. O conteúdo retornado do URI deve estar em conformidade com a especificação do esquema XML Tile ou Badge e deve ser codificado em UTF-8. Você pode usar cabeçalhos HTTP definidos para especificar o tempo de expiração ou a marca da notificação.

Comportamento de sondagem

Chame um destes métodos para iniciar a sondagem:

Quando você chama um desses métodos, o URI é imediatamente sondado e o bloco ou notificação é atualizado com o conteúdo recebido. Após essa sondagem inicial, o Windows continua a fornecer atualizações no intervalo solicitado. A sondagem continua até que você a interrompa explicitamente (com TileUpdater.StopPeriodicUpdate), seu aplicativo seja desinstalado ou, no caso de um bloco secundário, o bloco seja removido. Caso contrário, o Windows continuará a sondar atualizações para seu bloco ou notificação, mesmo que seu aplicativo nunca seja iniciado novamente.

O intervalo de recorrência

Você especifica o intervalo de recorrência como um parâmetro dos métodos listados acima. Observe que, embora o Windows faça o melhor esforço para sondar conforme solicitado, o intervalo não é preciso. O intervalo de sondagem solicitado pode ser atrasado em até 15 minutos, a critério do Windows.

A hora de início

Opcionalmente, você pode especificar uma hora específica do dia para iniciar a sondagem. Considere um aplicativo que altera o conteúdo do bloco apenas uma vez por dia. Nesse caso, recomendamos que você pesquise perto do momento em que atualizar seu serviço de nuvem. Por exemplo, se um site de compras diárias publicar as ofertas do dia às 8h, pesquise o novo conteúdo do bloco logo após as 8h.

Se você fornecer uma hora de início, a primeira chamada para o método sondará o conteúdo imediatamente. Em seguida, a sondagem regular começa dentro de 15 minutos do horário de início fornecido.

Comportamento de repetição automática

O URI será sondado somente se o dispositivo estiver online. Se a rede estiver disponível, mas o URI não puder ser contatado por qualquer motivo, essa iteração do intervalo de sondagem será ignorada e o URI será sondado novamente no próximo intervalo. Se o dispositivo estiver em um estado desligado, suspenso ou hibernado quando um intervalo de sondagem for atingido, o URI será sondado quando o dispositivo retornar de seu estado desligado ou suspenso.

Manipulando atualizações de aplicativos

Se você lançar uma atualização de aplicativo que altere seu URI de sondagem, deverá adicionar uma tarefa em segundo plano de gatilho de tempo diário que chame StartPeriodicUpdate com o novo URI para garantir que seus blocos estejam usando o novo URI. Caso contrário, se os usuários receberem a atualização do aplicativo, mas não iniciarem o aplicativo, os blocos ainda usarão o URI antigo, que poderá não ser exibido se o URI for inválido ou se a carga retornada fizer referência a imagens locais que não existem mais.

Expiração de notificações de bloco e selo

Por padrão, as notificações periódicas de bloco e selo expiram três dias a partir do momento em que são baixadas. Quando uma notificação expira, o conteúdo é removido da notificação, do bloco ou da fila e não é mais mostrado ao usuário. É uma prática recomendada definir um tempo de expiração explícito em todas as notificações periódicas de bloco e notificação, usando um tempo que faça sentido para seu aplicativo ou notificação, para garantir que o conteúdo não persista por mais tempo do que é relevante. Um tempo de expiração explícito é essencial para conteúdo com uma vida útil definida. Ele também garante a remoção de conteúdo obsoleto se o serviço de nuvem se tornar inacessível ou se o usuário se desconectar da rede por um longo período de tempo.

Seu serviço de nuvem define uma data e hora de expiração para uma notificação incluindo o cabeçalho HTTP X-WNS-Expires na carga de resposta. O cabeçalho HTTP X-WNS-Expires está em conformidade com o formato de data HTTP. Para obter mais informações, consulte StartPeriodicUpdate ou StartPeriodicUpdateBatch.

Por exemplo, durante o dia de negociação ativo de um mercado de ações, você pode definir a expiração de uma atualização do preço das ações para o dobro do intervalo de sondagem (como uma hora após o recebimento, se você estiver sondando a cada meia hora). Como outro exemplo, um aplicativo de notícias pode determinar que um dia é um prazo de expiração apropriado para uma atualização de bloco de notícias diárias.

Notificações periódicas na fila de notificações

Você pode usar atualizações periódicas de bloco com o ciclo de notificação. Por padrão, um bloco na tela inicial mostra o conteúdo de uma única notificação até que ela seja substituída por uma nova notificação. Quando você habilita o ciclismo, até cinco notificações são mantidas em uma fila e o bloco percorre elas.

Se a fila tiver atingido sua capacidade de cinco notificações, a próxima nova notificação substituirá a notificação mais antiga na fila. No entanto, ao definir tags em suas notificações, você pode afetar a política de substituição da fila. Uma tag é uma cadeia de caracteres específica do aplicativo que não diferencia maiúsculas de minúsculas de até 16 caracteres alfanuméricos, especificada no cabeçalho HTTP X-WNS-Tag na carga de resposta. O Windows compara a marca de uma notificação de entrada com as marcas de todas as notificações que já estão na fila. Se uma correspondência for encontrada, a nova notificação substituirá a notificação na fila pela mesma tag. Se nenhuma correspondência for encontrada, a regra de substituição padrão será aplicada e a nova notificação substituirá a notificação mais antiga na fila.

Você pode usar o enfileiramento de notificação e a marcação para implementar uma variedade de cenários de notificação avançados. Por exemplo, um aplicativo de ações pode enviar cinco notificações, cada uma sobre uma ação diferente e cada uma marcada com um nome de ação. Isso evita que a fila contenha duas notificações para o mesmo estoque, a mais antiga das quais está desatualizada.

Para obter mais informações, consulte Usando a fila de notificação.

Habilitando a fila de notificação

Para implementar uma fila de notificação, primeiro habilite a fila para o bloco (consulte Como usar a fila de notificação com notificações locais). A chamada para habilitar a fila precisa ser feita apenas uma vez no tempo de vida do aplicativo, mas não há mal nenhum em chamá-la sempre que o aplicativo for iniciado.

Sondagem de mais de uma notificação por vez

Você deve fornecer um URI exclusivo para cada notificação que deseja que o Windows baixe para seu bloco. Usando o método StartPeriodicUpdateBatch , você pode fornecer até cinco URIs de uma só vez para uso com a fila de notificação. Cada URI é sondado para uma única carga de notificação, ao mesmo tempo ou quase ao mesmo tempo. Cada URI pesquisado pode retornar seu próprio valor de expiração e marca.