3. Agenda
• Introduzione
• Tipi di Push Notification
• Comunicazioni e Limitazioni
• Ricevere ed Inviare Push Notification
• Demo
• Q&A
4. Introduzione
• Cosa sono le Push Notification?
– Un modo per inviare
periodicamente informazioni alle
vostre applicazioni anche quando
non sono attive
5. Introduzione
• Perché le Push Notification?
Per evitare la Per preservare Per migliorare
pratica del l’autonomia dei l’esperienza
polling dispositivi d’uso delle app
9. Toast Notification
• Funzionalità
– Possono essere inviate
immediatamente o con
un ritardo di 450 o 900
secondi
– Possono essere gestite
anche se l’app è attiva
10. Toast Notification
• Limiti
– L’icona non è
modificabile
– La quantità di testo tra
titolo e contenuto
visualizzabile è pari a
circa 40 caratteri
12. Tile Notification
• Composta da
– Title
– Count (badge)
– Backgr. Image
– Back Title
– Back Content
– Back Backgr. Image
13. Tile Notification
• Funzionalità
– Possono essere inviate
immediatamente o con un
ritardo di 450 o 900
secondi
– Possono aggiornare sia la
tile principale dell’app, sia
le tile secondarie
14. Tile Notification
• Limiti
– Le immagini devono essere:
• risoluzione 173x173
• formato JPG o PNG
– Le immagini possono essere locali (nello XAP)
o remote
– Le immagini caricate da remoto devono
essere:
• Massimo 80 KB
• Disponibili entro 30 secondi
• Su protocollo http e non https
16. Raw Notification
• Non hanno una struttura
definita
• Consentono di inviare
all’app informazioni in
formato XML
• Sono ricevute dall’app solo
se è in esecuzione
17. Raw Notification
• Messaggio XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<Value1>v1</Value1>
<Value2>v2</Value2>
</root>
18. Comunicazioni
• E’ possibile inviare notifiche da un proprio web service
sia in forma autenticata, che non autenticata
• Se il web service è anonimo non sarà possibile
generare più di 500 notifiche al giorno per
sottoscrizione
• Un web service autenticato può anche registrarsi al
servizio di callback Microsoft che notifica il cambio di
stato di un device
19. Limitazioni
• Tecniche
– Massimo un canale di comunicazione per applicazione
– Massimo 30 canali di comunicazione per device
– Massimo 1 KB per l’header e 3 KB per il body
• Certificazione dell’app
– L’app deve sempre comunicare all’utente che si sta registrando al
servizio di Push Notification
– L’app deve sempre fornire all’utente la possibilità di cancellare la
registrazione dal servizio
20. Ricevere Push Notification
• Cosa è necessario fare?
– Registrare l’app alla ricezione di una Push Notification
– Inviare il Channel Uri ad un vostro server
var pushChannel = HttpNotificationChannel.Find(channelName);
pushChannel = pushChannel ?? new HttpNotificationChannel(channelName);
pushChannel.ChannelUriUpdated += (s,e) => { SendToServer(e.ChannelUri); };
pushChannel.Open();
pushChannel.BindToShellTile(); //Register to receive tile notification
pushChannel.BindToShellToast(); //Register to receive toast notification
21. Inviare Push Notification
• Cosa è necessario fare?
– Creare ed eseguire una chiamata HTTP di tipo POST
verso il channel uri
//Create Request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(device.UrlNotification);
request.Method = "POST";
//Create Message (depends on notification type)
string message = "<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"> ….
//Define request body
AddBodyToRequest(request, message);
//Send request and get response
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
22. Inviare Push Notification
• Push Notification Server Side Helper
– Libreria opensource che semplifica l’invio dei
messaggi lato server
– Incapsula la generazione dei messaggi XML in
classi
• Disponibile su http://bit.ly/wp7pushlib
23. Demo
var demo = new PushNotificationDemo()
{
OnError = ()=> { Says(‘It’s a Windows Error ’); }
,
OnSuccess = ()=> { BackToSlides(); }
}
demo.Show();