Grazie a
Agenda•   Introduzione•   Tipi di Push Notification•   Comunicazioni e Limitazioni•   Ricevere ed Inviare Push Notificatio...
Introduzione• Cosa sono le Push Notification?  – Un modo per inviare    periodicamente informazioni alle    vostre applica...
Introduzione• Perché le Push Notification?Per evitare la    Per preservare    Per migliorare pratica del     l’autonomia d...
Architettura               Custom Server                  MPNS
Tipi di Push Notification• Toast Notification• Tile Notification• Raw Notification
Toast Notification• Composte da  – Title  – Content  – Parameter
Toast Notification• Funzionalità  – Possono essere inviate    immediatamente o con    un ritardo di 450 o 900    secondi  ...
Toast Notification• Limiti  – L’icona non è    modificabile  – La quantità di testo tra    titolo e contenuto    visualizz...
Toast Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification">   <wp:T...
Tile Notification• Composta da  –   Title  –   Count (badge)  –   Backgr. Image  –   Back Title  –   Back Content  –   Bac...
Tile Notification• Funzionalità  – Possono essere inviate    immediatamente o con un    ritardo di 450 o 900    secondi  –...
Tile Notification•   Limiti     – Le immagini devono essere:             •   risoluzione 173x173             •   formato J...
Tile Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification">   <wp:Ti...
Raw Notification• Non hanno una struttura  definita• Consentono di inviare  all’app informazioni in  formato XML• Sono ric...
Raw Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><root>        <Value1>v1</Value1>        <Value2>v2</...
Comunicazioni• E’ possibile inviare notifiche da un proprio web service  sia in forma autenticata, che non autenticata• Se...
Limitazioni• Tecniche   – Massimo un canale di comunicazione per applicazione   – Massimo 30 canali di comunicazione per d...
Ricevere Push Notification• Cosa è necessario fare?    – Registrare l’app alla ricezione di una Push Notification    – Inv...
Inviare Push Notification• Cosa è necessario fare?    – Creare ed eseguire una chiamata HTTP di tipo POST      verso il ch...
Inviare Push Notification• Push Notification Server Side Helper  – Libreria opensource che semplifica l’invio dei    messa...
Demovar demo = new PushNotificationDemo(){   OnError = ()=> { Says(‘It’s a Windows Error ’); },   OnSuccess = ()=> { Back...
Q&A• Materiale su     http://www.communitydays.it/
Riferimenti• Il mio blog  http://www.vifani.com• DotNetSide  http://dotnetside.org• MSDN  http://msdn.microsoft.com
Grazie per l’attenzione 
Push Notification: come rendere vive le app su Windows Phone
Upcoming SlideShare
Loading in …5
×

Push Notification: come rendere vive le app su Windows Phone

1,454 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,454
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Inserite l’eventuale vostro logo in basso a destra
  • Slide da mostrare prima di iniziare la sessione – non rimuovere!
  • Ultima slide, obbligatoria
  • Ultima slide, obbligatoria
  • Push Notification: come rendere vive le app su Windows Phone

    1. 1. Grazie a
    2. 2. Agenda• Introduzione• Tipi di Push Notification• Comunicazioni e Limitazioni• Ricevere ed Inviare Push Notification• Demo• Q&A
    3. 3. Introduzione• Cosa sono le Push Notification? – Un modo per inviare periodicamente informazioni alle vostre applicazioni anche quando non sono attive
    4. 4. 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
    5. 5. Architettura Custom Server MPNS
    6. 6. Tipi di Push Notification• Toast Notification• Tile Notification• Raw Notification
    7. 7. Toast Notification• Composte da – Title – Content – Parameter
    8. 8. Toast Notification• Funzionalità – Possono essere inviate immediatamente o con un ritardo di 450 o 900 secondi – Possono essere gestite anche se l’app è attiva
    9. 9. Toast Notification• Limiti – L’icona non è modificabile – La quantità di testo tra titolo e contenuto visualizzabile è pari a circa 40 caratteri
    10. 10. Toast Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"> <wp:Toast> <wp:Text1>Title</wp:Text1> <wp:Text2>Content</wp:Text2> <wp:Param>Param</wp:Param> </wp:Toast></wp:Notification>
    11. 11. Tile Notification• Composta da – Title – Count (badge) – Backgr. Image – Back Title – Back Content – Back Backgr. Image
    12. 12. 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
    13. 13. 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
    14. 14. Tile Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"> <wp:Tile> <wp:BackgroundImage>image1.jpg</wp:BackgroundImage> <wp:Count>1</wp:Count> <wp:Title>Title1</wp:Title> <wp:BackBackgroundImage>image2.jpg</wp:BackBackgroundImage> <wp:BackTitle>BackTitle1</wp:BackTitle> <wp:BackContent>Content1</wp:BackContent> </wp:Tile></wp:Notification>
    15. 15. Raw Notification• Non hanno una struttura definita• Consentono di inviare all’app informazioni in formato XML• Sono ricevute dall’app solo se è in esecuzione
    16. 16. Raw Notification• Messaggio XML<?xml version="1.0" encoding="utf-8"?><root> <Value1>v1</Value1> <Value2>v2</Value2></root>
    17. 17. 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
    18. 18. 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
    19. 19. Ricevere Push Notification• Cosa è necessario fare? – Registrare l’app alla ricezione di una Push Notification – Inviare il Channel Uri ad un vostro servervar pushChannel = HttpNotificationChannel.Find(channelName);pushChannel = pushChannel ?? new HttpNotificationChannel(channelName);pushChannel.ChannelUriUpdated += (s,e) => { SendToServer(e.ChannelUri); };pushChannel.Open();pushChannel.BindToShellTile(); //Register to receive tile notificationpushChannel.BindToShellToast(); //Register to receive toast notification
    20. 20. Inviare Push Notification• Cosa è necessario fare? – Creare ed eseguire una chiamata HTTP di tipo POST verso il channel uri//Create RequestHttpWebRequest 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 bodyAddBodyToRequest(request, message);//Send request and get responseHttpWebResponse response = (HttpWebResponse)request.GetResponse();
    21. 21. 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
    22. 22. Demovar demo = new PushNotificationDemo(){ OnError = ()=> { Says(‘It’s a Windows Error ’); }, OnSuccess = ()=> { BackToSlides(); }}demo.Show(); 
    23. 23. Q&A• Materiale su http://www.communitydays.it/
    24. 24. Riferimenti• Il mio blog http://www.vifani.com• DotNetSide http://dotnetside.org• MSDN http://msdn.microsoft.com
    25. 25. Grazie per l’attenzione 

    ×