Planifier une app notification

** Vous pouvez programmer une notification app pour apparaître ultérieurement, que votre app soit en cours d'exécution à ce moment. Cela est utile pour les scénarios tels que l’affichage de rappels ou d’autres tâches de suivi pour l’utilisateur, où l’heure et le contenu de la notification sont connus à l’avance.

Les notifications planifiées app ont une fenêtre de remise de 5 minutes. Si l’ordinateur est désactivé pendant le délai de livraison planifié et reste désactivé pendant plus de 5 minutes, la notification est « supprimée » comme n’est plus pertinente pour l’utilisateur. Si vous avez besoin d’une remise garantie des notifications, quelle que soit la durée pendant laquelle l’ordinateur a été désactivé, nous vous recommandons d’utiliser une tâche en arrière-plan avec un déclencheur de temps. Pour plus d’informations, consultez tâches en arrière-plan.

Pour plus d’informations sur les notifications, consultez App des notifications.

Note

Les exemples de code de cet article utilisent l’espace de noms Microsoft.Windows.AppNotifications pour générer du contenu de notification et l’espace de noms Windows.UI.Notifications pour la planification. Ces deux espaces de noms peuvent être utilisés ensemble dans le même app.

Planifier la notification

Pour planifier une notification pour une heure ultérieure, utilisez AppNotificationBuilder pour définir le contenu de la notification, appelez ensuite AddToSchedule avec un ScheduledToastNotification. L’exemple suivant planifie une notification pour apparaître 10 secondes à partir de maintenant.

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);

Les propriétés Tag et Group agissent comme une clé primaire composite pour la notification. La définition de ces valeurs vous permet d’annuler ou de remplacer la notification planifiée ultérieurement, comme indiqué dans la section suivante.

Annuler les notifications planifiées

Pour annuler une notification planifiée, appelez GetScheduledToastNotifications pour récupérer la liste des notifications en attente, puis appelez RemoveFromSchedule sur la balise que vous avez spécifiée précédemment.

var notifier = ToastNotificationManager.CreateToastNotifier();
var scheduled = notifier.GetScheduledToastNotifications();

foreach (var notification in scheduled)
{
    if (notification.Tag == "18365")
    {
        notifier.RemoveFromSchedule(notification);
    }
}

Voir également