Priorità di notifica WNS
Impostando la priorità di una notifica con un'intestazione semplice su messaggi WNS POST, è possibile controllare il modo in cui le notifiche vengono recapitate in situazioni sensibili alla batteria.
Accensione in Windows
Man mano che più utenti lavorano solo su dispositivi a batteria, la riduzione al minimo dell'utilizzo dell'alimentazione è diventata un requisito standard per tutte le app. Se le app consumano più energia rispetto al valore fornito, gli utenti potrebbero disinstallare le app. Anche se il sistema operativo Windows riduce l'utilizzo dell'alimentazione sulla batteria, laddove possibile, è responsabilità dell'app lavorare in modo efficiente.
Le priorità WNS sono un modo per spostare il lavoro non critico fuori dalla batteria. Le priorità WNS indicano al sistema quali notifiche devono essere recapitate immediatamente e quali possono attendere fino a quando il dispositivo non viene collegato a una fonte di alimentazione. Con questi suggerimenti, il sistema può recapitare le notifiche l'ora esatta in cui sono i più importanti sia per l'utente che per l'app.
Modalità di alimentazione nel dispositivo
Ogni dispositivo Windows funziona tramite diverse modalità di alimentazione (batteria, risparmio batteria e carica) e gli utenti si aspettano comportamenti diversi dalle app in diverse modalità di alimentazione. Quando il dispositivo è acceso, tutte le notifiche devono essere recapitate. In modalità risparmio batteria, devono essere recapitate solo le notifiche più importanti. Anche se il dispositivo è collegato, è possibile completare le operazioni di sincronizzazione o non critiche in fase di esecuzione.
Windows non sa quali notifiche sono importanti per qualsiasi utente o app, quindi il sistema si basa totalmente sulle app per impostare la priorità giusta per le notifiche.
Priorità
Sono disponibili quattro priorità per l'uso di un'app durante l'invio di notifiche push. La priorità viene impostata su singole notifiche, consentendo di scegliere quali notifiche devono essere recapitate immediatamente (ad esempio, un messaggio di messaggistica istantanea) e quali possono attendere (ad esempio, contattare gli aggiornamenti delle foto).
Le priorità sono:
Priorità | Sostituzione dell'utente | Descrizione | Esempio |
---|---|---|---|
Alto | Sì: l'utente può bloccare tutte le notifiche da un'app OPPURE può impedire che un'app venga limitata in modalità risparmio batteria. | Le notifiche più importanti che devono essere recapitate immediatamente in qualsiasi circostanza quando il dispositivo può ricevere notifiche. Elementi come chiamate VoIP o avvisi critici che devono riattivare il dispositivo rientrano in questa categoria. | Chiamate VoIP, avvisi critici per il tempo |
Medio | Sì: l'utente può bloccare tutte le notifiche da un'app OPPURE può impedire che un'app venga limitata in modalità risparmio batteria. | Si tratta di cose che non sono altrettanto importanti, cose che non devono accadere subito, ma gli utenti verrebbero infastiditi se non sono in esecuzione in background. | Sincronizzazione dell'account di posta elettronica secondario, aggiornamenti dei riquadri animati. |
Basso | Sì: l'utente può bloccare tutte le notifiche da un'app OPPURE può impedire che un'app venga limitata in modalità risparmio batteria. | Notifiche che hanno senso solo quando l'utente usa il dispositivo o quando l'attività in background ha senso. Questi vengono memorizzati nella cache e non elaborati fino a quando l'utente non accede o collega il dispositivo. | Stato contatto (online/offline) |
Si noti che molte app avranno notifiche con priorità diversa per tutto il ciclo di vita. Poiché la priorità viene impostata per ogni notifica, questo non è un problema. Un'app VoIP può inviare una notifica ad alta priorità per una chiamata in arrivo e quindi seguirla con una priorità bassa quando un contatto viene online.
Impostazione della priorità
L'impostazione della priorità nella richiesta di notifica viene eseguita tramite un'intestazione aggiuntiva nella richiesta POST, X-WNS-PRIORITY
. Si tratta di un valore intero compreso tra 1 e 4 che esegue il mapping a una priorità:
Nome priorità | Valore X-WNS-PRIORITY | Valore predefinito per: |
---|---|---|
Alto | 1 | Avviso popup |
Medio | 2 | Riquadri e badge |
Basso | 3 | Raw |
Per essere compatibile con le versioni precedenti, l'impostazione di una priorità non è necessaria. Nel caso in cui un'app non imposti la priorità delle notifiche, il sistema fornirà una priorità predefinita. Le impostazioni predefinite sono visualizzate nel grafico precedente e corrispondono al comportamento delle versioni esistenti di Windows.
Elenco dettagliato del comportamento del desktop
Se stai spedendo la tua app in molti SKU diversi di Windows, in genere è preferibile seguire il grafico nella sezione precedente.
Di seguito sono elencati comportamenti consigliati più specifici per ogni priorità. Ciò non garantisce che ogni dispositivo funzioni esattamente in base al grafico. Gli OEM sono liberi di configurare il comportamento in modo diverso, ma la maggior parte è vicina a questo grafico.
Stato dispositivo | PRIORITÀ: Alta | PRIORITÀ: Media | PRIORITÀ: Bassa | PRIORITÀ: Molto bassa |
---|---|---|---|---|
Schermo acceso O collegato | Distribuzione | Distribuzione | Distribuzione | Distribuzione |
Schermo spento e batteria attiva | Distribuzione | Se l'utente ha esentato: recapitare Else: cache | Se l'utente ha esentato: recapitare Else: cache* | Cache |
Risparmio batteria abilitato | Se l'utente ha esentato: recapitare Else: cache | Se l'utente ha esentato: recapitare Else: cache | Se l'utente ha esentato: recapitare Else: cache | Cache |
Batteria + risparmio batteria abilitato + schermo disattivato | Se l'utente ha esentato: recapitare Else: cache | Se l'utente ha esentato: recapitare Else: cache | Se l'utente ha esentato: recapitare Else: cache | Cache |
Si noti che le notifiche con priorità bassa verranno recapitate per impostazione predefinita per lo schermo spento e la batteria solo per i dispositivi basati su Windows Phone. Si tratta di mantenere la compatibilità con i criteri MPNS preesistenti. Si noti anche che la quarta e la quinta riga sono le stesse, semplicemente chiamando scenari diversi.
Per esentare un'app nel risparmio batteria, gli utenti devono passare a "Utilizzo batteria per app" in Impostazioni e selezionare "Consenti all'app di eseguire attività in background". Questa selezione utente esenta l'app dal risparmio batteria per le notifiche con priorità alta, media e bassa. È anche possibile chiamare l'API BackgroundExecutionManager per richiedere l'autorizzazione dell'utente a livello di codice.