Le novità nella gestione delle notifiche in Windows Phone 7.1

di Daniele Bochicchio, Alessio Leoncini, Marco Leoncini, in Windows Phone 7.1,

Windows Phone 7.1 è la nuova versione di Windows Phone, che come il nome stesso suggerisce è la diretta successiva della prima. Questa versione porta con sé diverse novità (qui una lista completa), tra cui di sicuro spicca il supporto al multi-tasking.

Proprio in quest'ottica, si potrebbe erroneamente pensare che le notifiche assumano un ruolo meno importante. In realtà, per preservare la batteria e garantire performance migliori, le notifiche continuano a rivestire un ruolo fondamentale in Windows Phone, tanto da essere state potenziate rispetto alla versione iniziale, le cui caratteristiche sono state migliorate.

In questo articolo daremo un'occhiata dettagliata a tutte le novità introdotte, oltre che analizzare le migliorie a quelle esistenti, così da avere un quadro completo relativo alle possibilità di gestire le notifiche con questa nuova versione.

Novità nella gestione delle notifiche

All'epoca del debutto di Windows Phone 7 furono in molti a storcere il naso di fronte alla mancanza del multitasking. Sappiamo che con la versione 7.1 questa lacuna viene colmata, ma allora la risposta di Microsoft alla mancanza di tale funzione furono le Push Notification.

Anche se la versione 7.1 di Windows Phone supporta l'esecuzione di alcuni processi in background, mediante l'utilizzo delle classi che estendono il tipo BackgroundAgent, Microsoft ha continuato ad investire per migliorare le Push Notification.

Infatti, anche se è possibile mantenere delle attività in background, l'utente, può in qualsiasi momento terminarle accedendo nella sezione "attività in background", dalla pagina di impostazioni del telefono.

È per questo motivo che le Push Notification rimangono un modo sicuro per notificare all'utente informazioni importanti provenienti dalla nostra applicazione, rispettando anche maggiormente il consumo di risorse, dato che il canale ha un consumo minimo, mentre l'uso di background agent è di sicuro più oneroso.

Per prima cosa, Microsoft ha investito in una reingegnerizzazione del servizio (Microsoft Push Notification Service), che, se non altera in sostanza l'architettura, ne cambia profondamente la sostanza, rendendo le notifiche ancora più affidabili e sicure.

Ma se le modifiche, seppur importanti, al servizio delle Push Notification non modificano la UX (user experience), ben altro impatto hanno le modifiche apportate al sistema di gestione delle Toast e delle Tile. Inziamo a dare un'occhiata.

Gestione delle notifiche Toast

Le Toast Notofication in Windows Phone 7 soffrono di una grossa limitazione: il messaggio è "atomico" e facendo tap su di esso l'utente vienea catapultato nella pagina principale dell'applicazione, perdendo completamente il contesto che ha generato la notifica.

A titolo d'esempio, immaginiamo un'ipotetica applicazione di news, in cui l'utente richiede di ricevere gli aggiornamenti su un argomento di suo interesse. Quando arriva la notifica, l'utente, letto il messaggio contenuto nella Toast, la trova di suo interesse e vuole approfondire, clicca e viene riportato non al dettaglio della news, come sarebbe lecito aspettarsi, ma alla pagina principale dell'applicazione. Di fatto questo comportamento rende inefficace, se non del tutto inutile, la notifica stessa.

Con il rilascio della versione 7.1 Microsoft ha corretto il tiro e reso possibile navigare verso una pagina precisa della nostra applicazione.

Il payload del servizio inviato al device cambia, come mostrato nel frammento di codice seguente:

<?xml version="1.0"encoding="utf-8"?> 
  <wp:Notification xmlns:wp="WPNotification"> 
    <wp:Toast> 
       <wp:Text1>stringa</wp:Text1> 
       <wp:Text2>stringa</wp:Text2> 
       <wp:Param>stringa</wp:Param> 
    </wp:Toast> 
</wp:Notification>

Il parametro evidenziato in grassetto è relativo alla versione di Windows Phone 7.1 e contiene la pagina da raggiungere una volta avviata l'applicazione più gli eventuali parametri da passere in querystring. Nell'esempio che abbiamo fatto in precedenza, la pagina potrebbe essere quella dedicata alla visualizzazione del dettaglio delle news, con il parametro relativo alla news da visualizzare in querystring:

<wp:Param>/NewsDetail.xaml?id=117</wp:Param>

Per gestire il parametro passato in querystring è sufficiente eseguire l'ovveride del metodo OnNavigateTo esposto dalla classe NewsDetail e accedere al NavigationContext:

protected override voidOnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    myTextBlock.Text = "news id: " + this.NavigationContext.QueryString["id"]; 
} 

È importante sottolineare che se una notifica contenente il parametro <wp:Param>stringa</wp:Param> viene inviata a un device con ancora la versione 7.0 del sistema operativo, verrà sollevata un eccezione del tipo PushErrorTypePayloadFormatInvalid ed il canale verrà chiuso.

È, quindi, importante considerare, nel caso in cui si proceda all'aggiornamento del servizio che invia le notifiche, di mantenere almeno per un determinato periodo una versione compatibile con i device equipaggiati con una precedente versione del sistema operativo.

Gestione delle notifiche alla Tile

Un'altra area che ha subito un pesante restyling è quella relativa alle Tile, l'inconfondibile caratteristica dei device Windows Phone di avere delle "mattonelle" all'interno dello start screen, con informazioni aggiuntive legate alle applicazioni.

Le Tile si arricchiscono di tre proprietà, che vengono mostrate sulla faccia posteriore, visualizzata grazie ad un animazione di tipo flip. In questo caso il payload del servizio per aggiornare una Tile è simile al seguente:

<?xml version="1.0"encoding="utf-8"?> 
<wp:Notificationxmlns:wp="WPNotification"> 
  <wp:Tile > 
    <wp:BackgroundImage></wp:BackgroundImage> 
    <wp:Count></wp:Count> 
    <wp:Title></wp:Title> 
   <wp:BackBackgroundImage></wp:BackBackgroundImage> 
   <wp:BackTitle></wp:BackTitle> 
   <wp:BackContent></wp:BackContent> 
  </wp:Tile>  
</wp:Notification>

Nel dettaglio, possiamo notare la proprietà BackBackgroundImage, che imposta l'immagine da visualizzare quando la Tile ruota su se stessa mostrando la faccia posteriore, mentre le proprietà BackTitle e BackContent ne impostano invece delle informazioni testuali. Possiamo notare meglio questa caratterista nell'immagine che segue.

È possibile utilizzare sia immagini locali, cioè presenti nello XAP contente l'applicazione, sia immagini remote, cioè reperite da Internet.

Per motivi di latenza, le immagini presenti nello XAP sono da preferire a quelle remote, poiché la latenza della rete potrebbe influire negativamente sull'aggiornamento della Tile stessa.

Inoltre, dobbiamo tenere presente che Windows Phone non scaricherà immagini superiori a 80k, e che se il download impiega più di 30 secondi, questo verrà interrotto. A questo si aggiunge l'impossibilità di utilizzare il protocollo HTTPS. Infine, per se qualsiasi ragione il download dell'immagine, sia principale che della faccia posteriore, dovesse fallire, nessuna delle proprietà verrà aggiornata.

Analogamente a quanto detto per le Toast, se un device Windows Phone 7 riceve il nuovo formato del payload dal servizio verrà sollevata un'eccezione.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc