Udostępnij przez


Grupowanie powiadomień typu toast z kolekcjami

Kolekcje służą do organizowania powiadomień aplikacji w Centrum akcji. Kolekcje ułatwiają użytkownikom znajdowanie informacji w Centrum akcji i umożliwiają deweloperom lepsze zarządzanie powiadomieniami. Poniższe interfejsy API umożliwiają usuwanie, tworzenie i aktualizowanie kolekcji powiadomień.

Important

Wymagaaktualizacji dla twórców: musisz celować w SDK 15063 i uruchomić kompilację 15063 lub nowszą, aby używać kolekcji powiadomień typu toast. Powiązane interfejsy API obejmują Windows.UI.Notifications.ToastCollectioni Windows.UI.Notifications.ToastCollectionManager

Możesz zobaczyć poniższy przykład z aplikacją do obsługi wiadomości, która oddziela powiadomienia na podstawie grupy czatów; każdy tytuł (Comp Sci 160A Project Chat, Direct Messages, Lacrosse Team Chat) jest oddzielną kolekcją. Zwróć uwagę, że powiadomienia są wyraźnie pogrupowane tak, jakby pochodziły z oddzielnej aplikacji, mimo że wszystkie są powiadomieniami z tej samej aplikacji. Jeśli szukasz bardziej subtelnego sposobu organizowania powiadomień, zobacz wyskakujące nagłówki.
Przykład kolekcji z dwoma różnymi grupami powiadomień

Tworzenie kolekcji

Podczas tworzenia każdej kolekcji musisz podać nazwę wyświetlaną i ikonę, która jest wyświetlana w Centrum akcji w ramach tytułu kolekcji, jak pokazano na powyższej ilustracji. Kolekcje wymagają również argumentu uruchamiania, aby ułatwić aplikacji przejście do właściwej lokalizacji w aplikacji po kliknięciu tytułu kolekcji przez użytkownika.

Tworzenie kolekcji

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

Wysyłanie powiadomień do kolekcji

Omówimy wysyłanie powiadomień z trzech różnych kanałów toastów: lokalnych, zaplanowanych i push. Dla każdego z tych przykładów utworzymy przykładowy komunikat typu toast do wysłania z kodem bezpośrednio poniżej, a następnie skoncentrujemy się na tym, jak dodać ten komunikat do kolekcji za pośrednictwem każdego kanału.

Stwórz zawartość komunikatu toast.

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

Wyślij powiadomienie do kolekcji

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

Dodaj zaplanowane powiadomienie do kolekcji

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

Wyślij powiadomienie wiadomości do kolekcji

W przypadku powiadomień push należy dodać nagłówek X-WNS-CollectionId do komunikatu POST.

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

Zarządzanie kolekcjami

Utwórz menedżera kolekcji powiadomień

W pozostałej części fragmentów kodu w tej sekcji "Zarządzanie kolekcjami" użyjemy poniższego elementu collectionManager.

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

Pobieranie wszystkich kolekcji

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

Pobierz liczbę utworzonych kolekcji

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

Usuwanie kolekcji

await collectionManager.RemoveToastCollectionAsync("MyToastCollection");

Aktualizowanie kolekcji

Kolekcje można zaktualizować, tworząc nową kolekcję o tym samym identyfikatorze i zapisując nowe wystąpienie kolekcji.

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

Zarządzanie powiadomieniami w kolekcji

Właściwości grupowania i tagu

Właściwości grupy i tagu razem jednoznacznie identyfikują powiadomienie wewnątrz kolekcji. Grupa (i tag) służy jako złożony klucz podstawowy (więcej niż jeden identyfikator), aby zidentyfikować powiadomienie. Jeśli na przykład chcesz usunąć lub zamienić powiadomienie, musisz mieć możliwość określenia powiadomienia, które chcesz usunąć/zamienić; Należy to zrobić, określając tag i grupę. Przykładem jest aplikacja do obsługi komunikatów. Deweloper może użyć identyfikatora konwersacji jako grupy i identyfikatora komunikatu jako tagu.

Usuń powiadomienie toast z kolekcji

Możesz usunąć pojedyncze komunikaty używając tagów i identyfikatorów grup, albo wyczyścić wszystkie komunikaty w kolekcji.

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

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

Wyczyść wszystkie powiadomienia w kolekcji

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

// Remove toast
collectionHistory.Clear();

Kolekcje w wizualizatorze powiadomień

Możesz użyć narzędzia Notifications Visualizer , aby ułatwić projektowanie kolekcji. Wykonaj poniższe kroki:

  • Kliknij ikonę koła zębatego w prawym dolnym rogu.
  • Wybierz "Toast collections".
  • Powyżej podglądu toastu znajduje się menu rozwijane "Kolekcja toastów". Wybierz Zarządzaj kolekcjami.
  • Kliknij pozycję "Dodaj kolekcję", wypełnij szczegóły kolekcji i zapisz.
  • Możesz dodać więcej kolekcji lub kliknąć poza polem Zarządzaj kolekcjami, żeby wrócić do ekranu głównego.
  • Wybierz kolekcję, do której chcesz dodać powiadomienie z menu rozwijanego "Kolekcja powiadomień".
  • Po uruchomieniu powiadomienia typu toast zostanie ono dodane do odpowiedniej kolekcji w Centrum akcji.

Inne szczegóły

Utworzone kolekcje powiadomień toast zostaną również odzwierciedlone w ustawieniach powiadomień użytkownika. Użytkownicy mogą przełączać ustawienia dla każdej kolekcji, aby włączyć lub wyłączyć te podgrupy. Jeśli powiadomienia są wyłączone na najwyższym poziomie aplikacji, wszystkie powiadomienia dotyczące kolekcji również zostaną wyłączone. Ponadto każda kolekcja będzie domyślnie wyświetlać 3 powiadomienia w Centrum akcji, a użytkownik może rozwinąć ją, aby wyświetlić maksymalnie 20 powiadomień.