Xamarin | Push Notification com Shiny
Anteriormente eu apresentei uma forma de configurar o Shiny com o Prism, para aumentar o leque de possibilidades de nossas aplicações.
Você confere esse post aqui:
Hoje oque eu trago para vocês é como configuramos o Shiny para utilizarmos a implementação de Push Notifications tanto para Firebase quanto para AzureHubNotifications.
Nugetssssss
Vamos instalar, além dos pacotes citados no post de configuração do Shiny + Prism, o pacote Shiny.Push.FirebaseMessaging.
Configurando a aplicação
Para o Android configuramos os ícones da notificação e chamamos o inicializador do Shiny:
Para o iOS, configuramos a inicialização do projeto no Appdelegate inicializando o Shiny:
Nossa classe MyStartup vamos configurar os serviços utilizados:
Na nossa classe de inicialização, do Shiny, vamos configurar para usar as notificações do Firebase (Ou AzureHubNotifications).
Nossa classe PushDelegate é quem vai ser responsável por tomar ações quando recebemos um Push.
Aqui é bom salientar que possuímos dois tipos de Push:
- Notification Message: Essa pode ser enviada pela interface do firebase, mas existe uma limitação com quais dados você consegue enviar para o dispositivo.
- Data Message: Essa pode ser enviada chamando a api do Firebase, e você consegue determinar qualquer JSON para enviar para os dispositivos. Você pode ainda determinar se é necessário ou não a exibição de uma notificação.
Dito isso, o OnEntry é a representação do Notification Message, ou seja, detalhes de uma notificação que já foi exibida para o usuário.
O OnReceived representa o Data Message, e alí podemos determinar oque fazer com os dados. (ex.: processar algo em background, enviar uma notificação mais personalizada e etc..)
No Firebase, buscamos o arquivo google-services.json e incluímos nos projetos de plataforma específica (Android/iOS), definindo sua ação de compilação para GoogleServicesJson.
Feito! Com apenas esses passos simples implementamos o PushNotification do firebase em nossa aplicação Xamarin.Forms.
Bonus!
Um exemplo de como podemos manipular externamente, a visibilidade de uma notificação, é enviar esses dados via JSON, na Data Message.
Vamos incluir a utilização do serviço de notificações do Shiny, na nossa classe de inicialização:
E configurar nosso PushDelegate para tratar os seguintes parâmetros:
Agora podemos utilizar o Postman para fazer a requisição e passar os dados necessários.
Para saber mais como utilizar o Postman para enviar PushNotifications veja esse Post do Patrik Butani.
Você encontra o exemplo desse projeto no meu github: