Por que eu devo ler este artigo:Este artigo será útil para os desenvolvedores que desejam utilizar novas formas de comunicação e interação com suas Apps por parte dos usuários, por exemplo, notificar sobre novas notícias, exibir novas imagens nos Tiles, a partir de um mecanismo que funciona mesmo com a App fechada, e que consome pouco recurso do telefone, como bateria.

No Windows Phone, com o número crescente de Apps, temos que sempre estar dispostos a nos diferenciar dos concorrentes, com isso, um dos diferenciais pode ser notificar o usuário sobre algum evento importante em tempo real, ou mesmo de tempos em tempos dependendo do propósito da App. Além disso, podemos utilizar as notificações Push não apenas como diferencial, mas também como “core” da App, por exemplo, em jogos por turno.

Desse modo, esse artigo se propõe a abordar como podemos trabalhar com notificações Push no Windows Phone 8.

Push Notifications

Podemos descrever as notificações Push como mensagens que contêm informações e podem ser recebidas pelas Apps, mesmo quando esta não se encontra em execução, dependendo do tipo de notificação enviada.

O serviço Microsft Push Notification para o Windows Phone oferece aos desenvolvedores um canal para envio de dados a uma App do Windows Phone, de forma assíncrona, a partir de um serviço web ou na nuvem que resulte em baixo consumo de energia pelo telefone.

Conforme a Figura 1, podemos entender como funciona o serviço.

Figura 1. Diagrama sobre como funciona o envio das notificações. Fonte: MSDN

  1. A App solicita ao cliente Push do telefone uma URI para notificação.
  2. O cliente Push negocia com o Microsoft Push Notification Service (MPNS), e o MPNS retorna uma URI única de notificação ao cliente Push do telefone.
  3. O cliente Push retorna a URI de notificação para a App.
  4. A App pode enviar a URI recebida a um serviço web ou na nuvem para que esse serviço web possa enviar mensagens à App quando necessário.
  5. Quando o serviço web tem alguma mensagem para ser enviada à App, este irá enviar uma requisição utilizando a URI de notificação recebida anteriormente para o MPNS.
  6. O MPNS encaminha a notificação Push para o telefone.

Nesse processo de envio, o MPNS responderá com um código de resposta ao solicitante do Push, indicando se o mesmo foi encaminhado ou será encaminhado na próxima possibilidade ao telefone. Também, o MPNS pode retornar indicando que o Push não será entregue e com isso, dependendo da situação, o Push pode ser reenviado ou não. Apesar disso, o MPNS não oferece uma confirmação de ponta a ponta de que o Push foi realmente entregue.

Para o uso desse serviço a Microsoft exige e/ou recomenda que algumas ações sejam tratadas, ou implementadas para garantir melhor o funcionamento do sistema, tais como:

· Para o uso do Push o desenvolvedor deve incluir no seu arquivo WMAppManifest.xml a indicação do uso do Push através da capability “ID_CAP_PUSH_NOTIFICATION”, conforme Figura 2.

abrir imagem em nova janela

Figura 2. Demonstração da funcionalidade que deve ser adicionada no arquivo de Manifesto

· Como parte da política de certificação da App, a mesma deve descrever ao usuário qual será a finalidade para a qual o Push será usado, e que o mesmo deve confirmar o uso. Também, a App deve oferecer um meio para que o usuário possa cancelar o recebimento das notificações push;

· A App sempre deve verificar se um canal de push já existe antes de tentar abri-lo, para evitar que o mesmo gere uma exceção durante a execução. O canal, por sua vez, persiste mesmo que a App seja atualizada, contudo, isso exige que o mesmo esteja atrelado a uma notificação do tipo Tile ou Toast;

· A App deve registrar-se no evento ChannelUriUpdated no caso de uma mudança da Uri de notificação, mesmo que o canal já esteja aberto. A URI expira de tempos em tempos, necessitando que a App solicite uma nova URI;

· A App deve registrar-se no evento ErrorOccurred para tratar qualquer erro. Alguns dos possíveis erros estão na Tabela 1;

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 79 /mês
Assinar agora