Panoramica delle notifiche periodiche

Le notifiche periodiche, note anche come notifiche con polling, aggiornano i riquadri e le notifiche non testuali a intervalli fissi scaricando contenuti da un servizio cloud. Per usare le notifiche periodiche, il codice dell'app client deve fornire due informazioni:

  • URI (Uniform Resource Identifier) di un percorso Web per Windows per eseguire il polling di aggiornamenti di riquadri o badge per l'app
  • Frequenza con cui deve essere eseguito il polling dell'URI

Le notifiche periodiche consentono all'app di ottenere gli aggiornamenti dei riquadri animati con un servizio cloud minimo e un investimento client. Le notifiche periodiche sono un buon metodo di distribuzione per distribuire lo stesso contenuto a un ampio pubblico.

Nota Per altre informazioni, scarica l'esempio di notifiche push e periodiche per Windows 8.1 e riutilizza il codice sorgente nell'app di Windows 10.

 

Funzionamento

Le notifiche periodiche richiedono che l'app ospiti un servizio cloud. Il servizio verrà sottoposto periodicamente a polling da tutti gli utenti che hanno installato l'app. A ogni intervallo di polling, ad esempio una volta all'ora, Windows invia una richiesta HTTP GET all'URI, scarica il contenuto del riquadro o della notifica richiesto (come XML) fornito in risposta alla richiesta e visualizza il contenuto nel riquadro dell'app.

Si noti che gli aggiornamenti periodici non possono essere usati con le notifiche di tipo avviso popup. L'avviso popup è più adatto tramite notifiche pianificate o push.

Percorso URI e contenuto XML

Qualsiasi indirizzo Web HTTP o HTTPS valido può essere usato come URI di cui eseguire il polling.

La risposta del server cloud include il contenuto scaricato. Il contenuto restituito dall'URI deve essere conforme alla specifica xml schema Tile o Badge e deve essere codificato con UTF-8. È possibile usare intestazioni HTTP definite per specificare l'ora di scadenza o il tag per la notifica.

Comportamento di polling

Chiamare uno di questi metodi per iniziare il polling:

Quando chiami uno di questi metodi, l'URI viene immediatamente sottoposto a polling e il riquadro o il badge viene aggiornato con il contenuto ricevuto. Dopo questo poll iniziale, Windows continua a fornire aggiornamenti all'intervallo richiesto. Il polling continua fino a quando non viene arrestato in modo esplicito (con TileUpdater.StopPeriodicUpdate), l'app viene disinstallata o, nel caso di un riquadro secondario, il riquadro viene rimosso. In caso contrario, Windows continua a eseguire il polling degli aggiornamenti al riquadro o al badge anche se l'app non viene mai avviata di nuovo.

Intervallo di ricorrenza.

Specificare l'intervallo di ricorrenza come parametro dei metodi elencati in precedenza. Si noti che mentre Windows fa il massimo sforzo per eseguire il polling come richiesto, l'intervallo non è preciso. L'intervallo di polling richiesto può essere ritardato fino a 15 minuti a discrezione di Windows.

Ora di inizio.

Facoltativamente, è possibile specificare un'ora specifica del giorno per iniziare il polling. Si consideri un'app che modifica il contenuto del riquadro solo una volta al giorno. In questo caso, è consigliabile eseguire il polling vicino al momento in cui si aggiorna il servizio cloud. Ad esempio, se un sito di shopping giornaliero pubblica le offerte del giorno alle 8:00, eseguire il polling del nuovo contenuto del riquadro poco dopo le 8:00.

Se si specifica un'ora di inizio, la prima chiamata al metodo esegue immediatamente il polling del contenuto. Quindi, il polling regolare inizia entro 15 minuti dall'ora di inizio specificata.

Comportamento automatico dei tentativi

Viene eseguito il polling dell'URI solo se il dispositivo è online. Se la rete è disponibile ma non è possibile contattare l'URI per qualsiasi motivo, questa iterazione dell'intervallo di polling viene ignorata e l'URI verrà nuovamente sottoposto a polling all'intervallo successivo. Se il dispositivo è spento, in sospensione o in stato di ibernazione quando viene raggiunto un intervallo di polling, viene eseguito il polling dell'URI quando il dispositivo torna dallo stato spento o in sospensione.

Gestione degli aggiornamenti delle app

Se si rilascia un aggiornamento dell'app che modifica l'URI di polling, è necessario aggiungere un'attività in background di trigger di ora giornaliera che chiama StartPeriodicUpdate con il nuovo URI per assicurarsi che i riquadri usino il nuovo URI. In caso contrario, se gli utenti ricevono l'aggiornamento dell'app ma non avviano l'app, i riquadri usano ancora l'URI precedente, che potrebbe non essere visualizzato se l'URI è ora non valido o se il payload restituito fa riferimento a immagini locali che non esistono più.

Scadenza delle notifiche dei riquadri e dei badge

Per impostazione predefinita, le notifiche periodiche di riquadri e badge scadono tre giorni dal momento in cui vengono scaricate. Quando una notifica scade, il contenuto viene rimosso dal badge, dal riquadro o dalla coda e non viene più mostrato all'utente. È consigliabile impostare un'ora di scadenza esplicita per tutte le notifiche periodiche di riquadri e notifiche badge, usando un'ora appropriata per l'app o la notifica, per assicurarsi che il contenuto non venga mantenuto più lungo di quanto sia rilevante. Un tempo di scadenza esplicito è essenziale per i contenuti con una durata di vita definita. Questo assicura anche la rimozione dei contenuti obsoleti se il tuo servizio cloud smette di essere accessibile o se l'utente si disconnette dalla rete per un periodo di tempo prolungato.

Il servizio cloud imposta una data e un'ora di scadenza per una notifica includendo l'intestazione HTTP X-WNS-Expires nel payload della risposta. L'intestazione HTTP X-WNS-Expires è conforme al formato di data HTTP. Per altre informazioni, vedere StartPeriodicUpdate or StartPeriodicUpdateBatch.

Ad esempio, durante il giorno di contrattazione di un mercato azionario, puoi impostare la scadenza di un aggiornamento del prezzo del titolo al doppio dell'intervallo di polling (ad esempio un'ora dopo la ricezione se esegui il polling ogni mezz'ora). Per fare un altro esempio, un'applicazione di notizie potrebbe stabilire che un giorno è un tempo di scadenza appropriato per un aggiornamento giornaliero delle notizie.

Notifiche periodiche nella coda di notifica

È possibile usare gli aggiornamenti periodici dei riquadri con il ciclo delle notifiche. Per impostazione predefinita, un riquadro nella schermata Start mostra il contenuto di una singola notifica fino a quando non viene sostituito da una nuova notifica. Quando si abilita il ciclo, vengono mantenute fino a cinque notifiche in una coda e il riquadro li scorre.

Se la coda ha raggiunto la capacità di cinque notifiche, la nuova notifica successiva sostituisce la notifica meno recente nella coda. Tuttavia, impostando tag sulle notifiche, è possibile influire sui criteri di sostituzione della coda. Un tag è una stringa senza distinzione tra maiuscole e minuscole specifiche dell'app con un massimo di 16 caratteri alfanumerici, specificata nell'intestazione HTTP X-WNS-Tag nel payload della risposta. Windows confronta il tag di una notifica in ingresso con i tag di tutte le notifiche già presenti nella coda. Se viene trovata una corrispondenza, la nuova notifica sostituisce la notifica in coda con lo stesso tag. Se non viene trovata alcuna corrispondenza, viene applicata la regola di sostituzione predefinita e la nuova notifica sostituisce la notifica meno recente nella coda.

È possibile usare l'accodamento delle notifiche e l'assegnazione di tag per implementare un'ampia gamma di scenari di notifica avanzati. Ad esempio, un'app stock potrebbe inviare cinque notifiche, ognuna relativa a un titolo diverso e ognuna contrassegnata con un nome azionario. In questo modo la coda non contiene mai due notifiche per lo stesso titolo, la cui versione precedente non è aggiornata.

Per altre informazioni, vedere Uso della coda di notifica.

Abilitazione della coda di notifica

Per implementare una coda di notifica, abilitare prima di tutto la coda per il riquadro (vedere Come usare la coda di notifica con le notifiche locali). La chiamata per abilitare la coda deve essere eseguita una sola volta nella durata dell'app, ma non c'è alcun danno nella chiamata ogni volta che viene avviata l'app.

Polling per più notifiche alla volta

Devi fornire un URI univoco per ogni notifica che vuoi scaricare da Windows per il riquadro. Usando il metodo StartPeriodicUpdateBatch , è possibile fornire fino a cinque URI contemporaneamente per l'uso con la coda di notifica. Ogni URI viene sottoposto a polling per un singolo payload di notifica, o quasi allo stesso tempo. Ogni URI sottoposto a polling può restituire il proprio valore di scadenza e tag.