Partage via


Planifier une notification toast

Les notifications toast planifiées vous permettent de planifier l’affichage d’une notification ultérieurement, que votre application s’exécute à ce moment-là. 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.

Notez que les notifications toast planifiées 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, comme illustré dans cet exemple de code.

Important

Les applications de bureau (empaquetées et non empaquetées) ont des étapes légèrement différentes pour envoyer des notifications et gérer l’activation. Suivez les instructions ci-dessous, mais remplacez ToastNotificationManager la classe à partir de la DesktopNotificationManagerCompat documentation des applications de bureau.

API importantes : Classe ScheduledToastNotification

Prérequis

Pour bien comprendre cette rubrique, les éléments suivants seront utiles...

  • Connaissance pratique des termes et concepts de notification toast. Pour plus d’informations, consultez la vue d’ensemble du centre de notifications et toast.
  • Connaissance du contenu de notification toast Windows 10. Pour plus d’informations, consultez la documentation de contenu toast.
  • Un projet d’application UWP Windows 10

Étape 1 : Installer le package NuGet

Installez le package NuGet Microsoft.Toolkit.Uwp.Notifications. Notre exemple de code utilisera ce package. À la fin de l’article, nous allons fournir les extraits de code « bruts » qui n’utilisent aucun package NuGet. Ce package vous permet de créer des notifications toast sans utiliser XML.

Étape 2 : Ajouter des déclarations d’espace de noms

using Microsoft.Toolkit.Uwp.Notifications; // Notifications library

Étape 3 : Planifier la notification

Nous allons utiliser une simple notification textuelle rappelant à un étudiant les devoirs qu’il a dûs aujourd’hui. Construisez la notification et planifiez-la !

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

Fournir une clé primaire pour votre toast

Si vous souhaitez annuler, supprimer ou remplacer par programmation la notification planifiée, vous devez utiliser la propriété Tag (et éventuellement la propriété Group) pour fournir une clé primaire pour votre notification. Ensuite, vous pouvez utiliser cette clé primaire à l’avenir pour annuler, supprimer ou remplacer la notification.

Pour plus d’informations sur le remplacement/la suppression des notifications toast déjà remises, consultez démarrage rapide : Gestion des notifications toast dans le centre de notifications (XAML).

L’étiquette et le groupe combinés agissent comme une clé primaire composite. Le groupe est l’identificateur plus générique, où vous pouvez affecter des groupes tels que « wallPosts », « messages », « friendRequests », etc. Ensuite, l’étiquette doit identifier de manière unique la notification elle-même à partir du groupe. En utilisant un groupe générique, vous pouvez ensuite supprimer toutes les notifications de ce groupe à l’aide de 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";
    });

Annuler des notifications planifiées

Pour annuler une notification planifiée, vous devez d’abord récupérer la liste de toutes les notifications planifiées.

Ensuite, recherchez votre toast planifié correspondant à la balise (et éventuellement le groupe) que vous avez spécifiée précédemment, puis appelez 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);
}

Important

Une application Win32 non empaquetée (sans identité de package lors de l’exécution) doit utiliser la classe ToastNotificationManagerCompat comme indiqué ci-dessus. Si vous utilisez ToastNotificationManager lui-même, vous recevrez une exception d’élément introuvable. Tous les types d’applications peuvent utiliser la classe Compat et fonctionnent correctement.

Gestion de l’activation

Consultez la documentation d’envoi d’un toast local pour en savoir plus sur la gestion de l’activation. L’activation d’une notification toast planifiée est gérée de la même façon que l’activation d’une notification toast locale.

Ajout d’actions, d’entrées, etc.

Consultez la documentation d’envoi d’un toast local pour en savoir plus sur les rubriques avancées telles que les actions et les entrées. Les actions et les entrées fonctionnent de la même façon dans les toasts locaux que dans les toasts planifiés.

Ressources