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.
È possibile pianificare la visualizzazione di una app notifica in un secondo momento, indipendentemente dal fatto che 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.
Le notifiche pianificate app 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 è necessario un recapito garantito delle notifiche indipendentemente dal tempo di disattivazione del computer, è consigliabile usare un'attività in background con un trigger di tempo. Per altre informazioni, vedere Attività in background.
Per altre informazioni sulle app notifiche, vedere App Panoramica delle notifiche.
Annotazioni
Gli esempi di codice in questo articolo usano lo spazio dei nomi
Pianificare la notifica
Per pianificare una notifica per un'ora futura, usare AppNotificationBuilder per definire il contenuto della notifica, chiamare quindi AddToSchedule con un ScheduledToastNotification. Nell'esempio seguente viene programmata la visualizzazione di una notifica tra 10 secondi.
using Microsoft.Windows.AppNotifications.Builder;
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;
var payload = new AppNotificationBuilder()
.AddArgument("action", "viewItemsDueToday")
.AddText("ASTR 170B1")
.AddText("You have 3 items due today!")
.BuildNotification()
.Payload;
var doc = new XmlDocument();
doc.LoadXml(payload);
var scheduledNotification = new ScheduledToastNotification(doc, DateTimeOffset.Now.AddSeconds(10));
scheduledNotification.Tag = "18365";
scheduledNotification.Group = "ASTR 170B1";
ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledNotification);
Le proprietà Tag e Group fungono da chiave primaria composita per la notifica. L'impostazione di questi valori consente di annullare o sostituire la notifica pianificata in un secondo momento, come illustrato nella sezione successiva.
Annullare le notifiche pianificate
Per annullare una notifica pianificata, chiama GetScheduledToastNotifications per recuperare l'elenco delle notifiche in sospeso, quindi chiama RemoveFromSchedule su quello corrispondente al tag specificato in precedenza.
var notifier = ToastNotificationManager.CreateToastNotifier();
var scheduled = notifier.GetScheduledToastNotifications();
foreach (var notification in scheduled)
{
if (notification.Tag == "18365")
{
notifier.RemoveFromSchedule(notification);
}
}