Freigeben über


Gruppieren von Popupbenachrichtigungen mit Sammlungen

Verwenden Sie Sammlungen zum Organisieren der Popups 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.

Wichtig

Erfordert Creators Update: Sie müssen sdk 15063 als Ziel verwenden und Build 15063 oder höher ausführen, um Popupsammlungen 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) ist eine separate Sammlung. 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 Popupkopfzeilen.
Sammlungsbeispiel mit zwei verschiedenen Gruppen von Benachrichtigungen

Erstellen von Sammlungen

Beim Erstellen jeder Sammlung müssen Sie einen Anzeigenamen und ein Symbol angeben, das im Info-Center als Teil des Titels der Sammlung angezeigt wird, wie in der abbildung oben gezeigt. Sammlungen erfordern außerdem ein Startargument, damit die App an der richtigen Position innerhalb der App navigiert, wenn der Titel der Sammlung vom Benutzer angeklippt 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 behandeln das Senden von Benachrichtigungen aus drei verschiedenen Popuppipelinen: lokal, geplant und Push. Für jedes dieser Beispiele erstellen wir ein Beispiel-Popup, das direkt unten mit dem Code gesendet werden soll. Anschließend konzentrieren wir uns auf das Hinzufügen des Popups zu einer Sammlung über jede Pipeline.

Erstellen Sie den Popupinhalt:

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

Senden eines Popups an eine Sammlung

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

Hinzufügen eines geplanten Popups zu einer Sammlung

// 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 eines Push-Popups an eine Sammlung

Für Push-Popups 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 des Popupsammlungs-Managers

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

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

Abrufen aller Sammlungen

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

Abrufen der 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 Auflistung 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 Popups in einer Sammlung

Gruppen- und Tageigenschaften

Die Gruppen- und Tageigenschaften identifizieren eine Benachrichtigung innerhalb einer Sammlung eindeutig. Gruppe (und Tag) dient als zusammengesetzter Primärschlüssel (mehrere 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 eines Popups aus einer Auflistung

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

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

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

Löschen aller Popups in einer Auflistung

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

// Remove toast
collectionHistory.Clear();

Sammlungen in notifications Visualizer

Sie können das Tool Notifications Visualizer verwenden, um Ihre Sammlungen zu entwerfen. Gehen Sie wie unten beschrieben vor:

  • Klicken Sie in der unteren rechten Ecke auf das Zahnradsymbol.
  • Wählen Sie "Popupsammlungen" aus.
  • Oberhalb der Vorschau des Popups befindet sich ein Dropdownmenü "Popupsammlung". 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 auf das Feld "Sammlungen verwalten" klicken, um zum Hauptbildschirm zurückzukehren.
  • Wählen Sie die Sammlung aus, der Sie das Popup aus dem Dropdownmenü "Popupsammlung" hinzufügen möchten.
  • Wenn Sie das Popup auslösen, wird es der entsprechenden Sammlung im Info-Center hinzugefügt.

Sonstige Details

Die von Ihnen erstellten Popupauflistungen werden auch in den Benachrichtigungseinstellungen des Benutzers angezeigt. 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.