Priorità di notifica di WNSWNS Notification Priorities

Impostando la priorità di una notifica con un'intestazione semplice per WNS POST-messaggi, è possibile controllare il modo in cui le notifiche vengono recapitate in situazioni sensibili alla batteria.By setting a notification's priority with a simple header to WNS POST messages, you can control how notifications are delivered in battery sensitive situations.

Accendere WindowsPower on Windows

Poiché più utenti lavorano solo sui dispositivi a batteria, la riduzione del consumo di energia è diventata un requisito standard per tutte le app.As more users are working only on battery powered devices, minimizing power usage has become a standard requirement for all apps. Se le app utilizzano più energia rispetto al valore fornito, gli utenti potrebbero disinstallare le app.If apps consume more energy than the value they provide, users might uninstall the apps. Sebbene il sistema operativo Windows riduca il consumo di energia nella batteria, laddove possibile, è responsabilità dell'app lavorare in modo efficiente.While the Windows operating system reduces power usage on the battery where possible, it is the app's responsibility to work efficiently.

Le priorità di WNS sono un modo per spostare il lavoro non critico dalla batteria.WNS priorities is one way to move non-critical work off the battery. Le priorità di WNS indicano al sistema quali notifiche devono essere recapitate immediatamente e che possono attendere fino a quando il dispositivo non viene collegato a una fonte di alimentazione.The WNS priorities tell the system which notifications should be delivered instantly and which can wait until the device is plugged into a power source. Con questi suggerimenti, il sistema è in grado di recapitare le notifiche la volta esatta in cui l'utente e l'app sono gli elementi più importanti.With these hints, the system can deliver the notifications the exact time they are the most valuable to both the user and the app.

Modalità risparmio energia sul dispositivoPower modes on the device

Ogni dispositivo Windows opera attraverso una varietà di modalità di alimentazione (batteria, risparmio di batteria e addebito) e gli utenti si aspettano comportamenti diversi dalle app in modalità di alimentazione diverse.Every Windows device operates through a variety of power modes (battery, battery saver, and charge), and users expect different behaviors from apps in different power modes. Quando il dispositivo è acceso, tutte le notifiche devono essere recapitate.When the device is on, all notifications should be delivered. In modalità risparmio di batteria, è necessario recapitare solo le notifiche più importanti.In battery saver mode, only the most important notifications should be delivered. Quando il dispositivo è collegato, è possibile completare operazioni critiche di sincronizzazione o non in tempo.While the device is plugged in, sync or non-time critical operations can be completed.

Windows non sa quali notifiche sono importanti per qualsiasi utente o app, quindi il sistema si basa completamente sulle app per impostare la priorità corretta per le notifiche.Windows does not know which notifications are important to any user or app, so the system relies totally on apps to set the right priority for their notifications.

PrioritàPriorities

Sono disponibili quattro priorità per l'uso da un'app quando si inviano notifiche push.There are four priorities available for an app to use when sending push notifications. La priorità è impostata sulle singole notifiche, consentendo di scegliere le notifiche che devono essere recapitate immediatamente (ad esempio, un messaggio di messaggistica immediata) e quelle che possono attendere (ad esempio, contattare gli aggiornamenti delle foto).The priority is set on individual notifications, allowing you to choose which notifications need to be delivered instantly (for example, an IM message) and which ones can wait (for example, contact photo updates).

Le priorità sono:The priorities are:

PrioritàPriority Sostituzione utenteUser Override DescrizioneDescription EsempioExample
AltoHigh Sì: l'utente può bloccare tutte le notifiche da un'app o può impedire che un'app venga limitata in modalità di risparmio di energia.Yes – user can block all notifications from an app OR can prevent an app from being throttled in battery saver mode. Le notifiche più importanti che devono essere recapitate immediatamente in qualsiasi circostanza quando il dispositivo può ricevere notifiche.The most important notifications that must be delivered right away in any circumstance when the device can receive notifications. Come le chiamate VoIP o gli avvisi critici che devono riattivare il dispositivo rientrano in questa categoria.Things like VoIP calls or critical alerts that should wake the device fall into this category. Chiamate VoIP, avvisi critici temporaliVoIP calls, time- critical alerts
MedioMedium Sì: l'utente può bloccare tutte le notifiche da un'app o può impedire che un'app venga limitata in modalità di risparmio di energia.Yes – user can block all notifications from an app OR can prevent an app from being throttled in battery saver mode. Si tratta di elementi che non sono altrettanto importanti, che non devono essere eseguiti immediatamente, ma gli utenti potrebbero non essere in esecuzione in background.These are things that are not as important, things that don’t need to happen right away, but users would be annoyed if they are not running in the background. Sincronizzazione dell'account di posta elettronica secondario, aggiornamenti del riquadro animato.Secondary Email account sync, live tile updates.
BassoLow Sì: l'utente può bloccare tutte le notifiche da un'app o può impedire che un'app venga limitata in modalità di risparmio di energia.Yes – user can block all notifications from an app OR can prevent an app from being throttled in battery saver mode. Notifiche che hanno senso solo quando l'utente usa il dispositivo o quando l'attività in background è sensata.Notifications that only make sense when the user is using the device or when background activity makes sense. Queste vengono memorizzate nella cache e non vengono elaborate fino a quando l'utente non accede o si connette al dispositivo.These are cached and not processed until the user signs in or plugs in their device. Stato contatto (online/offline)Contact status (online/offline)
Molto bassaVery Low No: non può impedire la limitazione delle notifiche con priorità molto bassa in modalità di risparmio di batteria.No – It cannot prevent very low priority notifications from being throttled in battery saver mode. Questo è quasi uguale alla priorità bassa, ad eccezione del fatto che gli utenti non possono eseguire l'override dei criteri di risparmio batteria.This is almost the same as low priority except users cannot override the battery saver policy. Queste notifiche non verranno mai recapitate in batteria saver.These notifications will never be delivered in battery saver. Sincronizzazione dei file per un servizio di sincronizzazione.Syncing files for a sync service.

Si noti che molte app avranno notifiche di priorità diverse per tutto il ciclo di vita.Note that many apps will have notifications of different priority throughout their lifecycle. Poiché la priorità è impostata in base alle singole notifiche, questo non è un problema.Since the priority is set on a per-notification basis, this isn’t an issue. Un'app VoIP può inviare una notifica con priorità alta per una chiamata in ingresso e quindi seguirla con una priorità bassa quando un contatto viene portato online.A VoIP app can send a high priority notification for an incoming call and then follow it up with a low priority one when a contact comes online.

Impostazione della prioritàSetting the priority

L'impostazione della priorità per la richiesta di notifica viene eseguita tramite un'intestazione aggiuntiva nella richiesta POST X-WNS-PRIORITY .Setting the priority on the notification request is done through an additional header on the POST request, X-WNS-PRIORITY. Si tratta di un valore intero compreso tra 1 e 4 che esegue il mapping a una priorità:This is an integer value between 1 and 4 which maps to a priority:

Nome prioritàPriority Name X-WNS-valore di prioritàX-WNS-PRIORITY Value Impostazione predefinita per:Default for:
AltoHigh 11 Avvisi popupToasts
GravitàMeduim 22 Riquadri e notificheTiles and Badges
BassoLow 33 RawRaw
Molto bassaVery Low 44

Per essere compatibile con le versioni precedenti, non è necessario impostare una priorità.To be backward compatible, setting a priority is not required. Se un'app non imposta la priorità delle notifiche, il sistema fornirà una priorità predefinita.In case an app doesn’t set the priority of their notifications, the system will provide a default priority. Le impostazioni predefinite vengono visualizzate nel grafico precedente e corrispondono al comportamento delle versioni di Windows esistenti.The defaults are shown in the chart above and match the behavior of existing versions of Windows.

Elenco dettagliato del comportamento del desktopDetailed listing of desktop behavior

Se si distribuisce l'app in molti SKU diversi di Windows, è in genere consigliabile seguire il grafico nella sezione precedente.If you are shipping your app across many different SKUs of Windows, it is normally best to follow the chart in the above section.

Di seguito sono elencati i comportamenti consigliati più specifici per ogni priorità.More specific recommended behaviors for each priority are listed below. Ciò non garantisce che ogni dispositivo funzionerà esattamente in base al grafico.This is not a guarantee that each device will work exactly according to the chart. Gli OEM sono liberi di configurare il comportamento in modo diverso, ma la maggior parte è vicina a questo grafico.OEMs are free to configure the behavior differently, but most are close to this chart.

Stato dispositivoDevice State PRIORITÀ: altaPRIORITY: High PRIORITÀ: mediaPRIORITY: Medium PRIORITÀ: bassaPRIORITY: Low PRIORITÀ: molto bassaPRIORITY: Very Low
Schermo acceso o collegatoScreen On OR plugged in DistribuzioneDeliver DistribuzioneDeliver DistribuzioneDeliver DistribuzioneDeliver
Schermo spento e a batteriaScreen Off AND on battery DistribuzioneDeliver Se esentato dall'utente: recapita else: batchIf user exempted: deliver Else: batch Se l'utente è esentato: recapito else: cache *If user exempted: deliver Else: cache * CacheCache
Risparmio di batteria abilitatoBattery Saver enabled Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache CacheCache
A batteria + batteria risparmiata abilitata + schermo disattivatoOn battery + battery saver enabled + screen off Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache Se esentato dall'utente: recapitare else: cacheIf user exempted: deliver Else: cache CacheCache

Si noti che per impostazione predefinita le notifiche con priorità bassa verranno recapitate per lo schermo e la batteria solo per i dispositivi basati su Windows Phone.Note that low priority notifications will be delivered by default for screen off and battery only for Windows Phone based devices. Per maintian la compatibilità con i criteri MPNS preesistenti.This is to maintian compatibility with preexisting MPNS policy. Si noti inoltre che la quarta e la quinta riga sono le stesse, semplicemente chiamando scenari diversi.Also note that the fourth and fifth rows are the same, just calling out different scenarios.

Per esentare un'app in Battery Saver, gli utenti devono passare alla "utilizzo della batteria per app" in impostazioni e selezionare "Consenti all'app di eseguire attività in background".To exempt an app in battery saver, users must go to the "Battery Usage by App" in Settings and select "Allow the app to run background tasks." Questa selezione utente esenta l'app dalla batteria saver per le notifiche di alta, media e bassa priorità.This user selection exempts the app from battery saver for high, medium, and low priority notifications. È anche possibile chiamare l' API BackgroundExecutionManager in a livello per richiedere l'autorizzazione dell'utente.You can also call BackgroundExecutionManager API to programatically ask for the user's permission.