Partage via


Regroupement de notifications toast avec des regroupements

Utilisez des collections pour organiser les toasts de votre application dans le Centre de notifications. Les regroupements aident les utilisateurs à localiser plus facilement les informations dans le Centre de notifications et permettent aux développeurs de mieux gérer leurs notifications. Les API ci-dessous permettent de supprimer, de créer et de mettre à jour des regroupements de notifications.

Important

Nécessite Creators Update : vous devez cibler le SDK 15063 et exécuter la build 15063 ou ultérieure pour utiliser des collections toast. Les API associées incluent Windows.UI.Notifications.ToastCollection et Windows.UI.Notifications.ToastCollectionManager

Vous pouvez voir l’exemple ci-dessous avec une application de messagerie qui sépare les notifications en fonction du groupe de conversation ; chaque titre (Comp Sci 160A Project Chat, Direct Messages, Lacrosse Team Chat) est une collection distincte. Notez comment les notifications sont regroupées séparément comme si elles étaient d’une application distincte, même si elles sont toutes des notifications de la même application. Si vous recherchez un moyen plus subtil d’organiser vos notifications, consultez les en-têtes toast.
Exemple de collection avec deux groupes de notifications différents

Création de regroupements

Lors de la création de chaque collection, vous devez fournir un nom d’affichage et une icône, qui sont affichés dans le Centre de notifications dans le cadre du titre de la collection, comme illustré dans l’image ci-dessus. Les regroupements nécessitent également un argument de lancement pour aider l’application à accéder à l’emplacement approprié dans l’application lorsque le titre de la collection est cliqué sur l’utilisateur.

Création d'une collection

// Create a toast collection
public async void CreateToastCollection()
{
	string displayName = "Work Email"; 
	string launchArg = "NavigateToWorkEmailInbox"; 
	Uri icon = new Windows.Foundation.Uri("ms-appx:///Assets/workEmail.png");

	// Constructor
	ToastCollection workEmailToastCollection = new ToastCollection(
		"MyToastCollection", 
		displayName,
 		launchArg, 
		icon);

	// Calls the platform to create the collection
	await ToastNotificationManager.GetDefault().GetToastCollectionManager().SaveToastCollectionAsync(workEmailToastCollection);  								
}

Envoi de notifications à un regroupement

Nous aborderons l’envoi de notifications à partir de trois pipelines toast différents : local, planifié et push. Pour chacun de ces exemples, nous allons créer un exemple toast à envoyer avec le code immédiatement ci-dessous, puis nous allons nous concentrer sur la façon d’ajouter le toast à une collection via chaque pipeline.

Construisez le contenu toast :

// Construct the content
var content = new ToastContentBuilder()
	.AddText("Adam sent a message to the group")
	.GetToastContent();

Envoyer un toast à une collection

// Create the toast
ToastNotification toast = new ToastNotification(content.GetXml());

// Get the collection notifier
var notifier = await ToastNotificationManager.GetDefault().GetToastNotifierForToastCollectionIdAsync("MyToastCollection");

// And show the toast
notifier.Show(toast);

Ajouter un toast planifié à une collection

// Create scheduled toast from XML above
ScheduledToastNotification scheduledToast = new ScheduledToastNotification(content.GetXml(), DateTimeOffset.Now.AddSeconds(10));

// Get notifier
var notifier = await ToastNotificationManager.GetDefault().GetToastNotifierForToastCollectionIdAsync("MyToastCollection");
    
// Add to schedule
notifier.AddToSchedule(scheduledToast);

Envoyer un toast push à une collection

Pour les toasts push, vous devez ajouter l’en-tête X-WNS-CollectionId au message POST.

// Add header to HTTP request
request.Headers.Add("X-WNS-CollectionId", collectionId); 

Gestion des collections

Créer le gestionnaire de collections toast

Pour le reste des extraits de code de cette section « Gestion des collections », nous allons utiliser le collectionManager ci-dessous.

ToastCollectionManger collectionManager = ToastNotificationManager.GetDefault().GetToastCollectionManager();

Obtenir toutes les collections

IReadOnlyList<ToastCollection> collections = await collectionManager.FindAllToastCollectionsAsync();

Obtenir le nombre de collections créées

int toastCollectionCount = (await collectionManager.FindAllToastCollectionsAsync()).Count;

Supprimer une collection

await collectionManager.RemoveToastCollectionAsync("MyToastCollection");

Mettre à jour une collection

Vous pouvez mettre à jour les collections en créant une collection avec le même ID et en enregistrant la nouvelle instance de la collection.

string displayName = "Updated Display Name"; 
string launchArg = "UpdatedLaunchArgs"; 
Uri icon = new Windows.Foundation.Uri("ms-appx:///Assets/updatedPicture.png");

// Construct a new toast collection with the same collection id
ToastCollection updatedToastCollection = new ToastCollection(
	"MyToastCollection", 
	displayName,
	launchArg, 
	icon);

// Calls the platform to update the collection by saving the new instance
await collectionManager.SaveToastCollectionAsync(updatedToastCollection);  								

Gestion des toasts dans une collection

Propriétés de groupe et d’étiquette

Les propriétés de groupe et de balise identifient de manière unique une notification dans une collection. Le groupe (et la balise) sert de clé primaire composite (plusieurs identificateurs) pour identifier votre notification. Par exemple, si vous souhaitez supprimer ou remplacer une notification, vous devez être en mesure de spécifier la notification que vous souhaitez supprimer/remplacer ; vous le faites en spécifiant l’étiquette et le groupe. Un exemple est une application de messagerie. Le développeur peut utiliser l’ID de conversation comme groupe et l’ID de message comme balise.

Supprimer un toast d’une collection

Vous pouvez supprimer des toasts individuels à l’aide des ID de balise et de groupe, ou effacer tous les toasts d’une collection.

// Get the history
var collectionHistory = await ToastNotificationManager.GetDefault().GetHistoryForToastCollectionAsync("MyToastCollection");

// Remove toast
collectionHistory.Remove(tag, group); 

Effacer tous les toasts dans une collection

// Get the history
var collectionHistory = await ToastNotificationManager.GetDefault().GetHistoryForToastCollectionAsync("MyToastCollection");

// Remove toast
collectionHistory.Clear();

Regroupements dans le visualiseur de notifications

Vous pouvez utiliser l’outil Visualiseur de notifications pour vous aider à concevoir vos collections. Procédez comme suit :

  • Cliquez sur l’icône d’engrenage dans le coin inférieur droit.
  • Sélectionnez « Regroupements toast ».
  • Au-dessus de l’aperçu du toast, il existe un menu déroulant « Toast Collection ». Sélectionnez Gérer les regroupements.
  • Cliquez sur « Ajouter une collection », renseignez les détails de la collection, puis enregistrez.
  • Vous pouvez ajouter d’autres regroupements ou cliquer sur la zone gérer les regroupements pour revenir à l’écran principal.
  • Sélectionnez la collection à laquelle vous souhaitez ajouter le toast dans le menu déroulant « Toast Collection ».
  • Lorsque vous déclenchez le toast, il sera ajouté à la collection appropriée dans le Centre de notifications.

Autres détails

Les collections toast que vous créez sont également reflétées dans les paramètres de notification de l’utilisateur. Les utilisateurs peuvent activer ou désactiver les paramètres de chaque collection individuelle pour activer ou désactiver ces sous-groupes. Si les notifications sont désactivées au niveau supérieur de l’application, toutes les notifications de regroupement sont également désactivées. En outre, chaque collection affiche par défaut 3 notifications dans le Centre de notifications, et l’utilisateur peut l’étendre pour afficher jusqu’à 20 notifications.