Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le notifiche toast pianificate consentono di programmare la visualizzazione di una notifica in un momento successivo, indipendentemente dal fatto che l'app sia in esecuzione in quel momento. Ciò è utile per scenari come la visualizzazione di promemoria o altre attività di completamento per l'utente, in cui il tempo e il contenuto della notifica sono noti in anticipo.
Si noti che le notifiche toast pianificate hanno una finestra di recapito di 5 minuti. Se il computer è spento durante l'orario di recapito pianificato e rimane disattivato per più di 5 minuti, la notifica verrà "eliminata" perché non è più rilevante per l'utente. Se è necessaria la consegna garantita delle notifiche indipendentemente da quanto tempo il computer è stato spento, è consigliabile usare un'attività in esecuzione in background con un trigger temporale, come illustrato in questo esempio di codice.
Importante
Le applicazioni desktop (in pacchetto e non in pacchetto) hanno passaggi leggermente diversi per l'invio di notifiche e la gestione dell'attivazione. Seguire le istruzioni riportate di seguito; tuttavia, sostituire
API importanti: classe ScheduledToastNotification
Prerequisiti
Per comprendere appieno questo argomento, sarà utile...
- Conoscenza pratica dei termini e dei concetti relativi alle notifiche toast. Per altre informazioni, vedere panoramica avviso popup e centro notifiche.
- Familiarità con il contenuto delle notifiche popup di Windows 10. Per altre informazioni, vedere documentazione del contenuto di tipo avviso popup.
- Un progetto di app UWP di Windows 10
Passaggio 1: Installare il pacchetto NuGet
Installare il pacchetto NuGet Microsoft.Toolkit.Uwp.Notifications. L'esempio di codice userà questo pacchetto. Alla fine dell'articolo verranno forniti i frammenti di codice "normale" che non usano pacchetti NuGet. Questo pacchetto consente di creare notifiche di tipo avviso popup senza usare XML.
Passaggio 2: Aggiungere dichiarazioni di spazio dei nomi
using Microsoft.Toolkit.Uwp.Notifications; // Notifications library
Passaggio 3: Pianificare la notifica
Useremo una semplice notifica basata su testo che ricorda a uno studente i compiti che hanno dovuto oggi. Costruisci la notifica e pianificala!
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5));
Specificare una chiave primaria per il toast
Se si desidera annullare, rimuovere o sostituire la notifica pianificata a livello di codice, è necessario utilizzare la proprietà Tag (e facoltativamente la proprietà Group) per fornire una chiave primaria per la notifica. È quindi possibile usare questa chiave primaria in futuro per annullare, rimuovere o sostituire la notifica.
Per ulteriori dettagli sulla sostituzione o rimozione di notifiche toast già recapitate, vedere Avvio rapido: Gestione delle notifiche toast nel centro operativo (XAML).
I tag e i gruppi combinati fungono da chiave primaria composita. Il gruppo è l'identificatore più generico, in cui è possibile assegnare gruppi come "wallPosts", "messages", "friendRequests" e così via. E quindi Tag deve identificare in modo univoco la notifica stessa dall'interno del gruppo. Usando un gruppo generico, è quindi possibile rimuovere tutte le notifiche da tale gruppo usando l'API RemoveGroup .
// Construct the content and schedule the toast!
new ToastContentBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!");
.Schedule(DateTime.Now.AddSeconds(5), toast =>
{
toast.Tag = "18365";
toast.Group = "ASTR 170B1";
});
Annullare le notifiche pianificate
Per annullare una notifica pianificata, è prima necessario recuperare l'elenco di tutte le notifiche pianificate.
Trova quindi il toast pianificato corrispondente al tag (e facoltativamente al gruppo) specificato in precedenza e chiama RemoveFromSchedule().
// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();
// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
// And remove it from the schedule
notifier.RemoveFromSchedule(toRemove);
}
Importante
Un'app Win32 non in pacchetto (manca l'identità del pacchetto in fase di esecuzione) deve usare la classe ToastNotificationManagerCompat come illustrato in precedenza. Se usi direttamente ToastNotificationManager, riceverai un'eccezione di elemento non trovato. Tutti i tipi di app possono usare la classe Compat, funzionando correttamente.
Gestione dell'attivazione
Per altre informazioni sulla gestione dell'attivazione, vedere la documentazione inviare un avviso popup locale. L'attivazione di una notifica toast pianificata viene gestita allo stesso modo dell'attivazione di una notifica toast locale.
Aggiunta di azioni, dati e altro ancora
Consultare la documentazione su inviare una notifica locale per ulteriori informazioni su argomenti avanzati come azioni e input. Le azioni e gli input funzionano allo stesso modo nelle notifiche locali come nelle notifiche pianificate.