Enviando Local Toast Notifications no Windows Phone 8.1
A nova central de notificações do Windows Phone 8.1 é fantástica e neste post vamos aprender a interagir com ela.
Enviando um o Toast Notification localmente
A primeira coisa que você tem que fazer é habilitar sua aplicação para poder usar toast notifications. Para isso, faça como na figura abaixo:
No Windows Phone as notificações são somente texto e aparecem por 7 segundos tocando um rápido som. No Windows 8 você pode também utilizar uma imagem e opcionalmente enviar notificações longas que podem tocar um som em looping para realmente atrair a atenção do usuário.
Para enviar um toast, você precisa criar um documento XML no template do tipo de mensagem que quer enviar e preencher alguns campos dele. Veja abaixo:
1 2 3 4 5 6 7 8 9 |
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02); XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode("Hey Joe!")); toastTextElements[1].AppendChild(toastXml.CreateTextNode("Paga o que me deves!")); var toast = new ToastNotification(toastXml) { ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(3600) }; ToastNotificationManager.CreateToastNotifier().Show(toast); |
Neste exemplo, um toast com o título “Hey Joe” e a mensagem “Paga o que me deves!” será criada e vai aparecer no topo de seu celular ou emulador. Note que nós também colocamos uma data de expiração para este toast de uma hora. Se você não setar nada, a mensagem fica no action center por no máximo 7 dias (caso o usuário não a apague antes).
Usando o NotificationsExtensions
Você deve ter notado que nós criamos e manipulamos um arquivo XML por debaixo do panos. Caso você queira lidar com isso de uma maneira fortemente tipada, você pode tirar proveito do pacote no nuget NotificationsExtensions.
1 |
Install-Package NotificationsExtensions.Portable |
A mesma ação utilizando o NotificationsExtensions fica assim:
1 2 3 4 5 6 |
var toast = ToastContentFactory.CreateToastText02(); toast.TextHeading.Text = "Hey Joe!"; toast.TextBodyWrap.Text = "Paga o que me deves!"; var xml = new XmlDocument(); xml.LoadXml(toast.GetContent()); ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(xml)); |
Um pouquinho mais fácil, né?
Personalizando a inicialização de sua App de acordo com a mensagem clicada
Quando o usuário toca em alguma mensagem de sua App no action center, sua aplicação vai ser inicializada. Você pode já levar o usuário ao ponto mais importante para aquela mensagem utilizando um parâmetro chamado “Launch” em sua toast notification.
1 |
toast.Lang = "meuParametro"; |
A String que você setar aí vai aparecer em LaunchActivatedEventArgs.Arguments na função OnLaunched que é chamada quando sua aplicação inicia. Basta você checar esse parâmetro e chamar a página que quiser na inicialização :)