Udostępnij przez


Zawartość powiadomienia aplikacji

Powiadomienia aplikacji to elastyczne powiadomienia z tekstem, obrazami i przyciskami/danymi wejściowymi. W tym artykule opisano elementy interfejsu użytkownika, które mogą być używane w powiadomieniu aplikacji i przedstawiono przykłady kodu służące do generowania formatu XML dla powiadomienia aplikacji.

Note

Określenie "powiadomienie typu toast" jest zastępowane terminem "powiadomienie aplikacji". Te dwa terminy odnoszą się do tej samej funkcji systemu Windows, ale z czasem wyeliminujemy użycie "toast notification" w dokumentacji.

Wprowadzenie

Powiadomienia aplikacji są definiowane przy użyciu ładunku XML zdefiniowanego przez schemat powiadomień aplikacji. Obecnie istnieją trzy sposoby generowania ładunku XML dla powiadomienia aplikacji. Przykłady kodu w tym artykule przedstawiają wszystkie trzy metody:

  • API Microsoft.Windows.AppNotifications.Builder — wprowadzona w Windows App SDK 1.2, przestrzeń nazw, która udostępnia API, umożliwia łatwe tworzenie treści XML dla powiadomienia programistycznie, bez konieczności martwienia się o specyfikę formatu XML. Przykłady kodu korzystające z tych interfejsów API znajdują się na kartach oznaczonych etykietą "Zestaw SDK aplikacji systemu Windows".
  • Składnia konstruktora Microsoft.Toolkit.Uwp.Notifications — te interfejsy API są częścią zestawu narzędzi platformy UWP Community Toolkit i zapewniają obsługę aplikacji platformy UWP. Mimo że te interfejsy API mogą być również używane dla aplikacji zestawu SDK aplikacji systemu Windows i nadal są obsługiwane, zalecamy, aby nowe implementacje używały interfejsów API Microsoft.Windows.AppNotifications.Builder . Aby użyć interfejsów API Community Toolkit, dodaj pakiet NuGet o nazwie UWP Community Toolkit Notifications do swojego projektu. Przykłady języka C# podane w tym artykule używają wersji 7.0.0 pakietu NuGet. Przykłady kodu korzystające z tych interfejsów API znajdują się na kartach oznaczonych etykietą "Windows Community Toolkit".
  • Nieprzetworzone dane XML — jeśli wolisz, możesz utworzyć własny kod niestandardowy w celu wygenerowania ciągów XML w wymaganym formacie. Nieprzetworzone przykłady XML znajdują się na kartach oznaczonych etykietą "XML".

Zainstaluj wizualizator powiadomień. Ta bezpłatna aplikacja dla systemu Windows pomaga w projektowaniu interaktywnych powiadomień aplikacji poprzez oferowanie natychmiastowego podglądu wizualnego twojego toastu podczas edytowania, podobnie jak edytor/widok projektu XAML w Visual Studio. Aby uzyskać więcej informacji, zobacz Notifications Visualizer lub pobierz program Notifications Visualizer ze Sklepu.

W tym artykule opisano tylko tworzenie zawartości powiadomień aplikacji. Aby uzyskać informacje na temat wysyłania powiadomienia po wygenerowaniu ładunku XML, zobacz Wysyłanie powiadomienia aplikacji lokalnej.

Struktura powiadomień aplikacji

Oto niektóre ważne składniki wysokiego poziomu ładunku XML powiadomienia aplikacji:

  • pl-PL: toast: Atrybut uruchamiania tego elementu określa, jakie argumenty będą przekazywane z powrotem do aplikacji, gdy użytkownik kliknie toast, co pozwala na bezpośrednie połączenie z odpowiednią zawartością wyświetlaną przez toasta. Aby dowiedzieć się więcej, zapoznaj się z sekcją Wysyłanie powiadomienia aplikacji lokalnej.
  • wizualny: ten element reprezentuje wizualną część powiadomienia, w tym ogólne powiązanie zawierające tekst i obrazy.
  • akcje: ten element reprezentuje interaktywną część powiadomienia, w tym dane wejściowe i akcje.
  • audio: Ten element określa dźwięk odtwarzany, gdy komunikaty są wyświetlane użytkownikowi.
var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", "9813")

    .AddText("Some text")

    .AddButton(new AppNotificationButton("Archive")
        .AddArgument("action", "archive"))

    .SetAudioUri(new Uri("ms-appx:///Sound.mp3"));

Oto wizualna reprezentacja zawartości powiadomienia aplikacji:

Zrzut ekranu powiadomienia aplikacji z etykietami obszaru atrybucji u góry pokazujący ikonę aplikacji i nazwę aplikacji Notifications Visualizer. Środkowa część powiadomienia jest oznaczona jako obszar wizualizacji, który zawiera trzy wiersze tekstu. Dolna sekcja powiadomienia jest oznaczona jako obszar akcji i zawiera dwa przyciski oznaczone jako Akceptuj i Odrzuć.

Obszar autorstwa

Obszar przypisania znajduje się w górnej części powiadomienia aplikacji. Począwszy od systemu Windows 11, nazwa i ikona aplikacji są wyświetlane w tym obszarze. Obszar przypisania zawiera również przycisk zamknięcia, który umożliwia użytkownikowi szybkie odrzucenie powiadomienia i menu wielokropka, które umożliwia użytkownikowi szybkie wyłączenie powiadomień dla aplikacji lub przejście do strony Ustawienia systemu Windows dla powiadomień aplikacji. Obszar przypisania jest konfigurowany przez shell i nie można go zastąpić w ramach toast XML, chociaż aplikacja może dodawać elementy do menu kontekstowego obszaru przypisania. Aby uzyskać więcej informacji, zobacz Akcje menu kontekstowego.

Visual

Każde powiadomienie aplikacji musi określać wizualny element , w którym należy podać powiązanie typu toast, które może zawierać tekst i obrazy. Te elementy będą renderowane na różnych urządzeniach z systemem Windows, w tym na komputerach stacjonarnych, telefonach, tabletach i konsoli Xbox.

Aby uzyskać informacje o wszystkich atrybutach obsługiwanych w sekcji wizualizacji i jej elementach podrzędnych, zobacz Schemat powiadomień aplikacji.

Elementy tekstowe

Każde powiadomienie aplikacji musi zawierać co najmniej jeden element tekstowy i może zawierać dwa dodatkowe elementy tekstowe, wszystkie typy AdaptiveText.

Zrzut ekranu przedstawiający powiadomienie aplikacji z trzema wierszami tekstu. Górny wiersz tekstu jest pogrubiony.

Od rocznicowej aktualizacji systemu Windows 10 można kontrolować, ile wierszy tekstu jest wyświetlanych przy użyciu właściwości HintMaxLines tekstu. Wartość domyślna (i maksymalna) to maksymalnie 2 wiersze tekstu tytułu i maksymalnie 4 wiersze (połączone) dla dwóch dodatkowych elementów opisu (drugi i trzeci element AdaptiveText).

var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", 9813)
    .AddText("Adaptive Tiles Meeting", new AppNotificationTextProperties().SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

Obraz wbudowany

Domyślnie obrazy są wyświetlane w linii z tekstem, po elementach tekstowych, wypełniając pełną szerokość obszaru wizualnego.

Zrzut ekranu przedstawiający powiadomienie aplikacji z domyślnym umieszczaniem obrazu w linii, wypełniając pełną szerokość obszaru wizualizacji.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetInlineImage(new Uri("ms-appx:///Images/InlineImage.png"));

AppNotificationManager.Default.Show(builder.BuildNotification());

Zastąpienie logo aplikacji

Określenie umieszczania wartości "appLogoOverride" spowoduje wyświetlenie obrazu w kwadratu po lewej stronie obszaru wizualizacji. Nazwa tej właściwości odzwierciedla zachowanie w poprzednich wersjach systemu Windows, gdzie obraz zastąpi domyślny obraz logo aplikacji. W systemie Windows 11 logo aplikacji jest wyświetlane w obszarze przypisania, więc nie jest zastępowane przez umieszczenie obrazu appLogoOverride.

Wymiary obrazu to 48 x 48 pikseli przy 100% skalowaniu. Ogólnie zalecamy udostępnienie wersji każdego elementu zawartości ikony dla każdego współczynnika skalowania: 100%, 125%, 150%, 200%i 400%.

Zrzut ekranu przedstawiający powiadomienie aplikacji pokazujące umieszczenie obrazu zastępującego logo aplikacji w kwadracie po lewej stronie obszaru wizualnego powiadomienia.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/AppLogo.png"));

Kadrowanie wskazówek

Wytyczne dotyczące stylu firmy Microsoft zalecają reprezentowanie zdjęć profilowych przy użyciu okrągłego obrazu, aby zapewnić jednolitą reprezentację osób w aplikacjach i powłoce. Ustaw właściwość HintCrop na Circle, aby zrenderować obraz z przycięciem kołowym.

Zrzut ekranu powiadomienia aplikacji pokazujący umieszczenie obrazu logo aplikacji przyciętego do koła po lewej stronie obszaru wizualnego powiadomienia.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/Profile.png"), AppNotificationImageCrop.Circle);

Obraz bohatera

Nowość w rocznicowej aktualizacji: Powiadomienia aplikacji mogą wyświetlać wyróżniony obraz, jakim jest ToastGenericHeroImage, widoczny na wyskakującym banerze oraz w Centrum Powiadomień. Wymiary obrazu to 364 x 180 pikseli przy 100% skalowania.

Zrzut ekranu przedstawiający powiadomienie aplikacji przedstawiające umieszczanie obrazu bohatera nad obszarem przypisywania autorstwa.

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

Ograniczenia rozmiaru obrazu

Obrazy używane w powiadomieniu mogą pochodzić z...

  • http://
  • ms-appx:///
  • ms-appdata:///

W przypadku zdalnych obrazów internetowych http i https istnieją ograniczenia dotyczące rozmiaru pliku poszczególnych obrazów. W aktualizacji Fall Creators Update (16299) zwiększyliśmy limit wynoszący 3 MB w przypadku normalnych połączeń i 1 MB na połączenia taryfowe. Wcześniej obrazy były zawsze ograniczone do 200 KB.

Normalne połączenie Połączenie zliczane Przed aktualizacją Fall Creators Update
3 MB 1 MB 200 KB

Jeśli obraz przekracza rozmiar pliku lub nie można go pobrać lub przekroczy limit czasu, obraz zostanie porzucony, a pozostałe powiadomienie zostanie wyświetlone.

Tekst autorstwa

Nowość w rocznicowej aktualizacji: jeśli musisz odwołać się do źródła zawartości, możesz użyć tekstu autorstwa. Ten tekst jest zawsze wyświetlany poniżej wszystkich elementów tekstowych, ale powyżej obrazów wbudowanych. Tekst używa nieco mniejszego rozmiaru niż standardowe elementy tekstowe, aby ułatwić odróżnienie od zwykłych elementów tekstowych.

W starszych wersjach systemu Windows, które nie obsługują tekstu autorstwa, tekst będzie po prostu wyświetlany jako inny element tekstowy (przy założeniu, że nie masz jeszcze maksymalnie trzech elementów tekstowych).

Zrzut ekranu przedstawiający powiadomienie typu toast z informacją o źródle

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetAttributionText("via SMS");
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

Niestandardowy znacznik czasu

Nowość w aktualizacji dla twórców: teraz można zastąpić sygnaturę czasową podaną przez system własnym znacznikiem czasu, który dokładnie reprezentuje czas generowania komunikatu/informacji/zawartości. Ten znacznik czasu jest widoczny w Centrum powiadomień.

Zrzut ekranu przedstawiający powiadomienie w Centrum powiadomień z niestandardowym znacznikiem czasu

Aby dowiedzieć się więcej na temat używania niestandardowego znacznika czasu, zobacz niestandardowe sygnatury czasowe dla komunikatów.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetTimeStamp(new DateTime(2017, 04, 15, 19, 45, 00, DateTimeKind.Utc));

Pasek postępu

Nowość w aktualizacji dla twórców: możesz podać pasek postępu w powiadomieniu aplikacji, aby informować użytkownika o postępach operacji, takich jak pobieranie.

Zrzut ekranu przedstawiający wyskakujące powiadomienie z paskiem postępu.

Aby dowiedzieć się więcej na temat korzystania z paska postępu, zobacz Pasek postępu wyskakowania.

Headers

New in Creators Update: powiadomienia można grupować w nagłówkach w Centrum powiadomień. Możesz na przykład grupować wiadomości z czatu grupowego w nagłówku lub powiadomienia grupy o wspólnym motywie w nagłówku lub więcej.

Zrzut ekranu przedstawiający centrum akcji aplikacji, pokazujący wiele powiadomień przeglądarki powiadomień zgrupowanych pod nagłówkiem o nazwie

Aby dowiedzieć się więcej o korzystaniu z nagłówków, zobacz Nagłówki wyskakujące.

Zawartość adaptacyjna

Nowość w rocznicowej aktualizacji: Oprócz zawartości określonej powyżej, można również wyświetlić dodatkową adaptacyjną zawartość, która jest widoczna po rozwinięciu toast.

Ta dodatkowa zawartość jest określana przy użyciu Adaptive, o której możesz dowiedzieć się więcej, czytając dokumentację Adaptacyjne płytki.

Należy pamiętać, że każda zawartość adaptacyjna musi znajdować się w grupie adaptacyjnej. W przeciwnym razie nie będzie renderowany przy użyciu funkcji adaptacyjnej.

Kolumny i elementy tekstowe

Oto przykład, w którym są używane kolumny i niektóre zaawansowane elementy tekstu adaptacyjnego. Ponieważ elementy tekstowe znajdują się w grupie AdaptiveGroup, obsługują wszystkie zaawansowane właściwości adaptacyjnego stylu.

Zrzut ekranu przedstawiający powiadomienie typu toast z grupami elementów tekstowych wyrównanych do lewej i prawej strony obszaru wizualnego powiadomienia.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support adaptive text elements.

Buttons

Przyciski sprawiają, że powiadomienia są interaktywne, umożliwiając użytkownikowi podjęcie szybkich działań w powiadomieniu aplikacji bez przerywania aktualnej pracy. Na przykład użytkownicy mogą odpowiedzieć na wiadomość bezpośrednio z poziomu powiadomienia lub usunąć e-mail, nawet nie otwierając aplikacji e-mail. Przyciski są wyświetlane w rozwiniętej części powiadomienia.

Aby dowiedzieć się więcej na temat kompleksowego implementowania przycisków, zobacz Send local toast.

Przyciski mogą aktywować aplikację w następujący sposób:

  • Aplikacja jest aktywowana na pierwszym planie z argumentem, który może służyć do przechodzenia do określonej strony/kontekstu.
  • Inna aplikacja jest aktywowana za pośrednictwem uruchamiania protokołu.
  • Aktywacja w tle jest obsługiwana jawnie w przypadku aplikacji platformy UWP. W przypadku aplikacji zestawu SDK aplikacji systemu Windows aplikacja jest zawsze uruchamiana na pierwszym planie. Aplikacja może wywołać aplikację AppInstance.GetActivatedEventArgs , aby wykryć, czy aktywacja została uruchomiona przez powiadomienie i określić z przekazanych argumentów, czy w pełni uruchomić aplikację pierwszego planu, czy po prostu obsłużyć powiadomienie i zakończyć.
  • Akcje systemowe, takie jak snoozing lub odrzucanie powiadomienia, są obsługiwane zarówno dla aplikacji platformy UWP, jak i zestawu SDK aplikacji systemu Windows. Interfejsy API AppNotificationBuilder nie obsługują tego scenariusza, ale aplikacje Windows App SDK mogą implementować ten scenariusz przy użyciu interfejsów API Microsoft.Windows.AppNotifications.Builder lub surowych plików XML.

Note

Możesz mieć maksymalnie 5 przycisków (w tym elementy menu kontekstowego, które omówimy później).

Zrzut ekranu przedstawiający wyskakujące powiadomienie z linią tekstu, po którym następuje wiersz z dwoma przyciskami zdefiniowanymi przez elementy akcji.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("New product in stock!")
        .AddButton(new AppNotificationButton("See more details")
            .AddArgument("action", "viewDetails"))
            .AddArgument("contentId", "351")
        .AddButton(new AppNotificationButton("Remind me later")
            .AddArgument("action", "remindLater"))
            .AddArgument("contentId", "351");

Przyciski z ikonami

Możesz dodawać ikony do przycisków. Te ikony są białe przezroczyste obrazy 16x16 pikseli na 100% skalowania i nie powinny zawierać wypełnienia w samym obrazie. Jeśli zdecydujesz się udostępnić ikony w przypadku wyskakującego powiadomienia, musisz podać ikony dla wszystkich swoich przycisków w powiadomieniu, ponieważ przekształcają styl twoich przycisków w przyciski z ikonami.

Note

W przypadku ułatwień dostępu pamiętaj, aby uwzględnić białą wersję kontrastową ikony (czarną ikonę dla białego tła), aby po włączeniu trybu białego o wysokim kontraście ikona była widoczna. Aby uzyskać więcej informacji, zobacz Obsługa powiadomień kafelkowych i powiadomień wyskakujących dla języka, skalowania i dużego kontrastu.

Zrzut ekranu przedstawiający powiadomienie aplikacji, które używa przycisków z ikonami.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("Return books to the library.")
        .AddButton(new AppNotificationButton("Accept")
            .AddArgument("action", "accept")
            .SetIcon(new Uri("ms-appx:///Images/Accept.png")))
        .AddButton(new AppNotificationButton("Snooze")
            .AddArgument("action", "snooze")
            .SetIcon(new Uri("ms-appx:///Images/Snooze.png")))
        .AddButton(new AppNotificationButton("Dismiss")
            .AddArgument("action", "dismiss")
            .SetIcon(new Uri("ms-appx:///Images/Dismiss.png")));

Nowość w aktualizacji Windows 11: Możesz dodać etykiety narzędziowe do ikon za pomocą właściwości HintToolTip w XML. Jest to idealne rozwiązanie, jeśli przyciski mają ikony, ale nie zawierają zawartości, ponieważ dzięki temu możesz przekazać tekst, który narrator systemu Windows może odczytać. Jeśli jednak zawartość istnieje, Narrator odczyta ją niezależnie od tego, co jest przekazane w etykiecie narzędzia.

var button = new AppNotificationButton("Reply")
    .AddArgument("action", "reply");

if (AppNotificationButton.IsToolTipSupported())
{
    button.ToolTip = "Click to reply.";
}

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .AddButton(button); 

Przyciski z kolorami

New in Windows 11 Update: Możesz dodać czerwone lub zielone kolory do przycisków, dodając atrybut useButtonStyle do wyskakujące elementu XML oraz atrybut hint-buttonStyle do elementu XML akcji, jak pokazano poniżej.

Zrzut ekranu powiadomienia z trzema przyciskami, dwa lewe przyciski są zielone z ikonami uruchamiania połączenia wideo lub uruchamiania połączenia audio. Trzeci przycisk jest czerwony i ma ikonę odrzucenia połączenia.

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .AddText("Incoming Call - Mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///Images/Profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Video Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Video.png"))
        .AddArgument("videoId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Phone Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Call.png"))
        .AddArgument("callId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Hang Up")
        .SetButtonStyle(AppNotificationButtonStyle.Critical)
        .SetIcon(new Uri("ms-appx:///Images/HangUp.png"))
        .AddArgument("hangUpId", "123"));

Akcje menu kontekstowego

Nowość w rocznicowej aktualizacji: możesz dodać dodatkowe akcje do istniejącego menu kontekstowego, które pojawia się, gdy użytkownik klika prawym przyciskiem myszy na powiadomienie typu toast lub wybiera ikonę menu kontekstowego.

Note

Na starszych urządzeniach te dodatkowe akcje menu kontekstowego będą po prostu wyświetlane jako normalne przyciski w powiadomieniu.

Dodatkowe akcje menu kontekstowego dodane (takie jak "Wycisz czat grupy przez 1 godzinę") są wyświetlane powyżej dwóch domyślnych wpisów systemowych.

Toast z menu kontekstowym

var builder = new AppNotificationBuilder()
    .AddText("Camping this weekend?")
    .SetAppLogoOverride(new Uri("ms-appx:///images/Reply.png"), AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Mute group chat for 1 hour")
        .AddArgument("action", "mute")
        .SetContextMenuPlacement());

Note

Dodatkowe elementy menu kontekstowego wliczają się do całkowitego limitu 5 przycisków na komunikat.

Aktywacja dodatkowych elementów menu kontekstowego jest obsługiwana w taki sam sposób jak przyciski powiadomień.

Inputs

Dane wejściowe są określane w obszarze Actions powiadomienia aplikacji, co oznacza, że są widoczne tylko po rozwinięciu powiadomienia.

Szybkie pole tekstowe odpowiedzi

Aby włączyć szybkie pole tekstowe odpowiedzi (na przykład w aplikacji do obsługi wiadomości), dodaj tekst wejściowy i przycisk, a następnie odwołaj się do identyfikatora pola wprowadzania tekstu, aby przycisk był wyświetlany obok pola wejściowego. Opcjonalna ikona przycisku, jeśli zostanie podana, powinna być obrazem 32x32 pikseli bez wypełniania, białych pikseli ustawionych na przezroczyste i 100% skalowania.

Zrzut ekranu toastu powiadomienia z obrazem profilu i kilkoma wierszami tekstu. Pole tekstowe do wpisywania bezpośrednio na toast oraz przycisk do wysłania odpowiedzi.

var builder = new AppNotificationBuilder()
    .AddTextBox("textBox", "Type a reply", "Reply")
    .AddButton(AppNotificationButton("Send")
        .AddArguments("action", "Send")
        .SetInputId("textBox"))
    .BuildNotification();

Pola wejściowe z paskiem przycisków

Można również mieć jedno (lub wiele) wejść z normalnymi przyciskami wyświetlanymi poniżej pola wejściowego.

Zrzut ekranu przedstawiający powiadomienie aplikacji z wierszem tekstu, polem tekstowym i wierszem z dwoma przyciskami z etykietą

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support quick reply text boxes.

Wybór danych wejściowych

Oprócz pól tekstowych można również użyć menu wyboru.

Zrzut ekranu przedstawiający powiadomienie aplikacji zawierający wiersz tekstu, pole wyboru z wybraną pozycją

var builder = new AppNotificationBuilder()
    .AddText("4th coffee?")
    .AddText("When do you plan to come in tomorrow?")
    .AddComboBox(new AppNotificationComboBox("time")
        .SetTitle("Select an item:")
        .AddItem("breakfast", "Breakfast")
        .AddItem("lunch", "Lunch")
        .AddItem("dinner", "Dinner")
        .SetSelectedItem("lunch"))
    .AddButton(new AppNotificationButton("Reply")
        .AddArgument("action", "reply")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement())
    .AddButton(new AppNotificationButton("Call restaurant")
        .AddArgument("action", "videocall")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement());

Snooze/dismiss

Korzystając z menu wyboru i dwóch przycisków, możemy utworzyć powiadomienie o przypomnieniu, które wykorzystuje systemowe akcje drzemki i odrzucenia. Pamiętaj, aby ustawić scenariusz na "Przypomnienie", aby powiadomienie zachowywało się jak przypomnienie.

Zrzut ekranu przedstawiający powiadomienie aplikacji z wierszami tekstu opisującym czas i lokalizację spotkania. Zaznaczono pole wyboru

Łączymy przycisk Snooze z wejściem menu wyboru przy użyciu właściwości SelectionBoxId na przycisku powiadomienia.

Składnia Microsoft.Windows.AppNotifications.Builder nie obsługuje obecnie aktywacji systemu. Jednak ten scenariusz jest obsługiwany w przypadku aplikacji Windows App SDK, i można tworzyć powiadomienia dla tego scenariusza przy użyciu interfejsów API lub nieprzetworzonego kodu XML Microsoft.Toolkit.Uwp.Notifications.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support system activation. 
// But this scenario is supported for Windows App SDK apps, and you can build notifications for this 
// scenario using the `Microsoft.Toolkit.Uwp.Notifications` APIs or raw XML.

Aby użyć snooze i odrzucić akcje systemu:

  • Określ ToastButtonSnooze lub ToastButtonDismiss
  • Opcjonalnie określ niestandardowy ciąg zawartości:
  • Jeśli nie podasz ciągu, automatycznie użyjemy zlokalizowanych ciągów dla "Snooze" i "Odrzuć".
  • Opcjonalnie określ SelectionBoxId:
  • Jeśli nie chcesz, aby użytkownik wybrał interwał drzemki i zamiast tego chcesz, aby powiadomienie odkładało się tylko raz dla interwału czasu zdefiniowanego przez system (który jest spójny w całym systemie operacyjnym), nie konstruuj żadnych danych wejściowych <> wcale.
  • Jeśli chcesz podać wybory interwałów drzemki: — określ SelectionBoxId w akcji odłożenia — dopasuj identyfikator danych wejściowych do SelectionBoxId akcji odłożenia — określ wartość ToastSelectionBoxItemwartością typu nonNegativeInteger, która reprezentuje interwał drzemki w minutach.

Audio

Niestandardowy dźwięk był zawsze obsługiwany na urządzeniach mobilnych i jest obsługiwany w wersji na komputery stacjonarne 1511 (kompilacja 10586) lub nowszej. Do niestandardowego dźwięku można odwoływać się za pomocą następujących ścieżek:

  • ms-appx:///
  • ms-appdata:///
var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioUri(new Uri("ms-appx:///Audio/NotificationSound.mp3"));

Alternatywnie możesz wybrać z listy ms-winsoundevents, które zawsze były obsługiwane na obu platformach.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioEvent(AppNotificationSoundEvent.Alarm, AppNotificationAudioLooping.Loop);

Aby uzyskać informacje na temat dźwięku w powiadomieniach aplikacji, zobacz stronę schematu audio . Aby dowiedzieć się, jak wysyłać powiadomienia aplikacji z niestandardowym dźwiękiem, zobacz niestandardowy dźwięk w powiadomieniach typu toast.

Scenarios

Aby utworzyć ważne powiadomienia, alarmy, przypomnienia i powiadomienia o połączeniach przychodzących, wystarczy użyć normalnego powiadomienia aplikacji z przypisaną do niego wartością Scenario. Scenariusz dostosowuje kilka zachowań, aby utworzyć spójne i ujednolicone środowisko użytkownika. Istnieją cztery możliwe wartości scenariusza :

  • Przypomnienie
  • Alarm
  • IncomingCall
  • Urgent

Reminders

W scenariuszu przypomnienia powiadomienie pozostanie na ekranie, dopóki użytkownik go nie odrzuci lub podejmie działania. W systemie Windows Mobile powiadomienie aplikacji będzie również wyświetlane wstępnie rozwinięte. Zostanie odtworzony dźwięk przypomnienia. Musisz podać co najmniej jeden przycisk w powiadomieniu aplikacji. W przeciwnym razie powiadomienie będzie traktowane jako normalne powiadomienie.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Reminder);

Alarms

Alarmy zachowują się tak samo jak przypomnienia, z wyjątkiem tego, że alarmy dodatkowo będą zapętlać dźwięk, używając domyślnego dźwięku alarmu. Musisz podać co najmniej jeden przycisk w powiadomieniu aplikacji. W przeciwnym razie powiadomienie będzie traktowane jako normalne powiadomienie.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Alarm)
    .AddButton(new AppNotificationButton("Dismiss")
        .AddArgument("action", "dismiss"));

Połączenia przychodzące

Powiadomienia dotyczące połączeń przychodzących są wyświetlane wstępnie rozwinięte w specjalnym formacie połączenia i pozostają na ekranie użytkownika do czasu odrzucenia. Domyślnie, dźwięk dzwonka będzie powtarzany. Na urządzeniach z systemem Windows Mobile są wyświetlane pełne ekrany.

powiadomienie o przychodzącym połączeniu

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
    .AddText("incoming call - mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///images/profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Text reply")
        .SetToolTip("Text reply")
        .SetIcon(new Uri("ms-appx:///images/reply.png"))
        .AddArgument("textId", "123"))
    .AddButton(new AppNotificationButton("Reminder")
        .SetToolTip("Reminder")
        .SetIcon(new Uri("ms-appx:///images/reminder.png"))
        .AddArgument("reminderId", "123"))
    .AddButton(new AppNotificationButton("Ignore")
        .SetToolTip("Ignore")
        .SetIcon(new Uri("ms-appx:///images/ignore.png"))
        .AddArgument("ignoreId", "123"))
    .AddButton(new AppNotificationButton("Answer")
        .SetToolTip("Answer")
        .SetIcon(new Uri("ms-appx:///images/answer.png"))
        .AddArgument("answerId", "123"));

Ważne powiadomienia

Important

Wymaga: Aby korzystać z ważnych powiadomień, musisz użyć kompilacji Windows Insider Preview Build 22546 lub nowszej.

Ważne powiadomienia umożliwiają użytkownikom większą kontrolę nad tym, co aplikacje pierwszej strony i aplikacje innych firm mogą wysyłać im powiadomienia aplikacji o wysokim priorytecie (pilne/ważne), które mogą przełamać tryb asystenta skupienia (tryb Nie przeszkadzać). Można to zmodyfikować w ustawieniach powiadomień.

Zrzut ekranu przedstawiający pilne powiadomienie aplikacji z wykrzyknikiem w obszarze przypisywania obok nazwy aplikacji. Obraz przedstawia również powiadomienie aplikacji inicjowane przez system, które udostępnia przyciski umożliwiające użytkownikowi zezwalanie na pilne powiadomienia z aplikacji lub nie zezwala na nie.

var builder = new AppNotificationBuilder()
    .AddText("Adaptive Tiles Meeting", 
        new AppNotificationTextProperties()
            .SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

if (AppNotificationBuilder.IsUrgentScenarioSupported())
{
    builder.SetScenario(AppNotificationScenario.Urgent);
}

Lokalizacja i ułatwienia dostępu

Kafelki i powiadomienia aplikacji mogą ładować ciągi i obrazy dostosowane do języka wyświetlania, skali wyświetlania, dużego kontrastu i innych kontekstów uruchomieniowych. Aby uzyskać więcej informacji, zobacz Tile i wyskakujące obsługa powiadomień dla języka, skalowania i dużego kontrastu.

Obsługa procesu aktywacji

Aby dowiedzieć się, jak obsługiwać aktywacje aplikacji (kiedy użytkownik kliknie powiadomienie lub przyciski w powiadomieniu), zobacz Wyślij lokalne powiadomienie.