Freigeben über


Gruppieren von Toastbenachrichtigungen mit Sammlungen

Verwenden Sie Sammlungen zum Verwalten der Benachrichtigungen Ihrer App im Info-Center. Sammlungen helfen Benutzern, Informationen im Info-Center einfacher zu finden und Entwicklern die bessere Verwaltung ihrer Benachrichtigungen zu ermöglichen. Die folgenden APIs ermöglichen das Entfernen, Erstellen und Aktualisieren von Benachrichtigungssammlungen.

Important

Erfordert das Creators Update: Sie müssen das SDK 15063 anvisieren und Build 15063 oder höher nutzen, um Toast-Benachrichtigungssammlungen zu verwenden. Verwandte APIs sind Windows.UI.Notifications.ToastCollection und Windows.UI.Notifications.ToastCollectionManager

Sie können das folgende Beispiel mit einer Messaging-App sehen, die die Benachrichtigungen basierend auf der Chatgruppe trennt. Jeder Titel (Comp Sci 160A Project Chat, Direct Messages, Lacrosse Team Chat) bildet eine eigene Kategorie. Beachten Sie, dass die Benachrichtigungen eindeutig gruppiert werden, als ob sie von einer separaten App stammen, obwohl sie alle Benachrichtigungen aus derselben App sind. Wenn Sie nach einer dezenteren Möglichkeit zum Organisieren Ihrer Benachrichtigungen suchen, lesen Sie Toast-Kopfzeilen.
-Auflistungsbeispiel mit zwei verschiedenen Gruppen von Benachrichtigungen

Erstellen von Sammlungen

Beim Erstellen jeder Sammlung müssen Sie einen Anzeigenamen und ein Symbol angeben, die im Info-Center als Teil des Titels der Sammlung angezeigt werden, wie in der Abbildung oben gezeigt. Sammlungen erfordern außerdem ein Startargument, damit die App an die richtige Stelle innerhalb navigiert, wenn der Titel der Sammlung vom Benutzer angeklickt wird.

Erstellen einer Sammlung

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

Senden von Benachrichtigungen an eine Sammlung

Wir werden das Senden von Benachrichtigungen aus drei verschiedenen Toast-Pipelines abdecken: lokal, geplant und push. Für jedes dieser Beispiele werden wir eine Beispiel-Toast-Benachrichtigung erstellen, die mit dem direkt untenstehenden Code gesendet wird. Anschließend konzentrieren wir uns darauf, wie die Toast-Nachricht über jede Pipeline zu einer Sammlung hinzugefügt werden kann.

Erstellen Sie den Toastinhalt:

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

Eine Benachrichtigung an eine Sammlung senden

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

Geplanten Toast zu einer Sammlung hinzufügen

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

Senden einer Push-Benachrichtigung an eine Sammlung

Für Push-Toasts müssen Sie der POST-Nachricht den X-WNS-CollectionId-Header hinzufügen.

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

Verwalten von Sammlungen

Erstellen Sie den Toast-Sammlungsmanager

Für den Rest der Codeausschnitte in diesem Abschnitt "Managing Collections" verwenden wir den collectionManager unten.

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

Alle Sammlungen abrufen

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

Erhalte die Anzahl der erstellten Sammlungen

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

Entfernen einer Sammlung

await collectionManager.RemoveToastCollectionAsync("MyToastCollection");

Aktualisieren einer Sammlung

Sie können Sammlungen aktualisieren, indem Sie eine neue Sammlung mit derselben ID erstellen und die neue Instanz der Sammlung speichern.

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

Verwalten von Benachrichtigungen in einer Sammlung

Gruppen- und Etikett-Eigenschaften

Die Gruppen- und Tag-Eigenschaften identifizieren eine Benachrichtigung innerhalb einer Sammlung eindeutig. Gruppe (und Tag) dient als zusammengesetzter Primärschlüssel (mehr als ein Bezeichner), um Ihre Benachrichtigung zu identifizieren. Wenn Sie beispielsweise eine Benachrichtigung entfernen oder ersetzen möchten, müssen Sie angeben können, welche Benachrichtigung Sie entfernen/ersetzen möchten. Dazu geben Sie das Tag und die Gruppe an. Ein Beispiel ist eine Messaging-App. Der Entwickler kann die Unterhaltungs-ID als Gruppe und die Nachrichten-ID als Tag verwenden.

Entfernen einer Benachrichtigung aus einer Liste

Sie können einzelne Toast-Benachrichtigungen mithilfe der Tag- und Gruppen-IDs entfernen oder alle Toast-Benachrichtigungen in einer Sammlung löschen.

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

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

Lösche alle Benachrichtigungen in einer Auflistung

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

// Remove toast
collectionHistory.Clear();

Sammlungen in Benachrichtigungen Visualizer

Sie können das Tool Notifications Visualizer verwenden, um Ihre Sammlungen zu entwerfen. Führen Sie dafür die folgenden Schritte aus:

  • Klicken Sie in der unteren rechten Ecke auf das Zahnradsymbol.
  • Wählen Sie "Toast-Sammlungen" aus.
  • Oberhalb der Vorschau des Toasts befindet sich ein Dropdown-Menü "Toast-Sammlung". Wählen Sie "Sammlungen verwalten" aus.
  • Klicken Sie auf "Sammlung hinzufügen", füllen Sie die Details für die Sammlung aus, und speichern Sie sie.
  • Sie können weitere Sammlungen hinzufügen oder außerhalb des Feldes "Sammlungen verwalten" klicken, um zum Hauptbildschirm zurückzukehren.
  • Wählen Sie die Sammlung aus, der Sie den Toast aus der 'Toastsammlung' hinzufügen möchten.
  • Wenn Sie die Toast-Benachrichtigung auslösen, wird sie der entsprechenden Sammlung im Aktionscenter hinzugefügt.

Sonstige Details

Die von Ihnen erstellten Toastsammlungen werden auch in den Benachrichtigungseinstellungen des Benutzers widergespiegelt. Benutzer können die Einstellungen für jede einzelne Sammlung umschalten, um diese Untergruppen ein- oder auszuschalten. Wenn Benachrichtigungen auf der obersten Ebene für die App deaktiviert sind, werden auch alle Sammlungsbenachrichtigungen deaktiviert. Darüber hinaus zeigt jede Sammlung standardmäßig 3 Benachrichtigungen im Info-Center an, und der Benutzer kann sie erweitern, um bis zu 20 Benachrichtigungen anzuzeigen.