Windows Phone Advanced Push Notification<br />Michele Locuratolo<br />Software Architect – Microsoft MVP<br />www.michelel...
Notifiche e Tile<br />Cosa sono<br />Come funzionano<br />Le novità in … <br />
User Interface<br />Tile Notification:<br />Contatore<br />Titolo<br />Immagine<br />Toast Notification: <br />Titolo<br /...
I tipi di notifiche<br />Trasporta dati<br />! Intrusiva !Usare con cautela<br />
Architettura Push Notification<br />
Cloud App<br />Windows Phone APP<br />HTTP Post<br />3<br />Push Client<br />4<br />Notification NameSpace<br />URI Update...
Il ruolo del server<br />
Il messaggio<br />sendNotificationRequest.ContentType = "text/xml";<br />sendNotificationRequest.Headers.Add("X-WindowsPho...
Delivery notifica<br />Non garantito ma...<br />Ci torna lo status<br />Decidiamo in base allo status<br />http://tinyurl....
Ad esempio...<br />
Interpretazione Status Code<br />NotificationStatus: stato della notifica<br />Received: notifica ricevuta dal server<br /...
Received/Connected/Active<br />Indica che la notifica è stata correttamente ricevuta non è detto che sia arrivata al devic...
Received/TemporarilyDisconnected/Active<br />Il device non è sotto copertura o la connessione è disabilitata durante il ro...
New on Mango!<br />Local Tile<br />MultiTile<br />BackTile<br />Notifiche Parametriche<br />
Local Tile<br />StandardTileData NewTileData = new StandardTileData{    BackgroundImage = new Uri("/Images/tile.png", UriK...
Multi / Back Tile<br /><?xml version="1.0" encoding="utf-8"?><br /><wp:Notificationxmlns:wp="WPNotification"><br /><wp:Til...
Deep Toast<br /><wp:Notificationxmlns:wp="WPNotification"> <br />    <wp:Toast> <br />        <wp:Text1>Text 1</wp:Text1><...
Scenari<br />
Risorse<br /><ul><li>Server Helper: http://tinyurl.com/6a9ra3r
http://tinyurl.com/5s7aqa6
http://tinyurl.com/6ecreqp
Upcoming SlideShare
Loading in …5
×

Advanced Push Notification Service

1,754 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,754
On SlideShare
0
From Embeds
0
Number of Embeds
185
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Advanced Push Notification Service

  1. 1. Windows Phone Advanced Push Notification<br />Michele Locuratolo<br />Software Architect – Microsoft MVP<br />www.michelelocuratolo.com <br />Twitter: @mighell<br />
  2. 2. Notifiche e Tile<br />Cosa sono<br />Come funzionano<br />Le novità in … <br />
  3. 3. User Interface<br />Tile Notification:<br />Contatore<br />Titolo<br />Immagine<br />Toast Notification: <br />Titolo<br />Sottotitolo <br />RAW:<br />Gestita dall’applicazione<br />
  4. 4. I tipi di notifiche<br />Trasporta dati<br />! Intrusiva !Usare con cautela<br />
  5. 5. Architettura Push Notification<br />
  6. 6. Cloud App<br />Windows Phone APP<br />HTTP Post<br />3<br />Push Client<br />4<br />Notification NameSpace<br />URI Update<br />Microsoft Push Notification Services<br />Push Library<br />5<br />2<br />1<br />httpChannel.Open();<br />
  7. 7. Il ruolo del server<br />
  8. 8. Il messaggio<br />sendNotificationRequest.ContentType = "text/xml";<br />sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "token");<br />sendNotificationRequest.Headers.Add("X-NotificationClass", "<batching interval>"); <br />// Possible batching interval values:<br />// 1: The message is delivered by the PNS immediately.<br />// 11: The message is delivered by the PNS within 450 seconds.<br />// 21: The message is delivered by the PNS within 900 seconds.<br /><?xml version="1.0" encoding="utf-8"?><br /><wp:Notificationxmlns:wp="WPNotification"><br /><wp:Toast><br /><wp:Text1>Title</wp:Text1><br /><wp:Text2>Text</wp:Text2><br /></wp:Toast><br /></wp:Notification><br />
  9. 9. Delivery notifica<br />Non garantito ma...<br />Ci torna lo status<br />Decidiamo in base allo status<br />http://tinyurl.com/statusc<br />
  10. 10. Ad esempio...<br />
  11. 11. Interpretazione Status Code<br />NotificationStatus: stato della notifica<br />Received: notifica ricevuta dal server<br />QueueFull: coda piena. La notifica deve essrereinviata dal nostro server<br />Suppressed: notifica ricevuta ma cancellata. Si verifica se il canale è configurato per scartare una notifica (ad esempio, la nostra app non è pinnata nella home)<br />Dropped: sottoscrizione annullata. Cancellarla dal server<br />DeviceConnectionStatus: stato del device<br />Connected: device connesso<br />TemporarilyDisconnected: la notifica è ricevuta ma il device non è connesso (spento/fuori copertura)<br />Inactive: device inattivo<br />SubscriptionStatus: stato della sottoscrizione<br />Active: sottoscrizione attiva<br />Exipred: sottoscrizione annullata. Non inviare notifiche.<br />
  12. 12. Received/Connected/Active<br />Indica che la notifica è stata correttamente ricevuta non è detto che sia arrivata al device.<br />Se il device non viene raggiunto (cambio di stato connessione) la notifica viene rimandata<br />
  13. 13. Received/TemporarilyDisconnected/Active<br />Il device non è sotto copertura o la connessione è disabilitata durante il roaming<br />Restrizioni sul piano dati<br />Proxy / Firewall<br />Connessione non stabile<br />Limitazioni del provider per ottimizzazione consumi e banda<br />
  14. 14. New on Mango!<br />Local Tile<br />MultiTile<br />BackTile<br />Notifiche Parametriche<br />
  15. 15. Local Tile<br />StandardTileData NewTileData = new StandardTileData{    BackgroundImage = new Uri("/Images/tile.png", UriKind.Relative),    Title = "Titolo",    Count = 0,    BackTitle = "Titolo Posteriore",    BackContent = "Testo Posteriore",    BackBackgroundImage = new Uri("back.jpg", UriKind.Relative)};<br />// Crea la nuova tile e la "pinna" in home.ShellTile.Create(new Uri("/page.xaml?TileID=param", UriKind.Relative), NewTileData);<br />//Recupera la tile specificaShellTile myTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("TileID=param"));<br />//Imposta i nuovi contenutiStandardTileData data = new StandardTileData();data.Title = "Nuovo Titolo";data.Count = 10;            //Aggiorna la tilemyTile.Update(data);<br />//Cancella la tilemyTile.Delete();<br />
  16. 16. Multi / Back Tile<br /><?xml version="1.0" encoding="utf-8"?><br /><wp:Notificationxmlns:wp="WPNotification"><br /><wp:TileId=“/page.xaml?TileID=param”> <br /> <wp:BackgroundImage>Front Image</wp:BackgroundImage><br /> <wp:Count>Counter</wp:Count><br /> <wp:Title>Front Title</wp:Title><br /> <wp:BackBackgroundImage>Back Image</wp:BackBackgroundImage><br /> <wp:BackTitle>Back Title</wp:BackTitle><br /> <wp:BackContent>Back Content</wp:BackContent><br /></wp:Tile><br /></wp:Notification><br />
  17. 17. Deep Toast<br /><wp:Notificationxmlns:wp="WPNotification"> <br /> <wp:Toast> <br /> <wp:Text1>Text 1</wp:Text1><br /> <wp:Text2>Text 2</wp:Text2><br /><wp:Param>/detailsPage.xaml?storyid=186435</wp:Param> <br /> </wp:Toast><br /></wp:Notification> <br />
  18. 18. Scenari<br />
  19. 19. Risorse<br /><ul><li>Server Helper: http://tinyurl.com/6a9ra3r
  20. 20. http://tinyurl.com/5s7aqa6
  21. 21. http://tinyurl.com/6ecreqp
  22. 22. http://tinyurl.com/62lx5n3
  23. 23. http://tinyurl.com/5tepxg3</li></li></ul><li>Domande?<br />
  24. 24. GRAZIE<br />

×