Wybieranie odpowiedniego typu kanału powiadomień push

W tym artykule opisano trzy typy kanałów powiadomień push Windows (podstawowy, pomocniczy i alternatywny), które ułatwiają przekazywanie zawartości do aplikacji.

(Aby uzyskać szczegółowe informacje na temat tworzenia powiadomień push, zobacz omówienie usług systemu Windows Push Notification Services (WNS).)

Typy kanałów push

Istnieją trzy typy kanałów powiadomień, których można użyć do wysyłania powiadomień do aplikacji Windows. Są to:

kanał podstawowy – "tradycyjny" kanał wypychania. Mogą być używane przez dowolną aplikację w sklepie do wysyłania powiadomień typu toast, obrazkowych, nieprzetworzonych lub znaczników. Więcej informacji można znaleźć tutaj.

kanał wtórnego kafelka — służy do przesyłania aktualizacji do wtórnego kafelka. Można używać tylko do wysyłania powiadomień kafelków lub znaczków do kafelka pomocniczego przypiętego na ekranie startowym użytkownika.

kanał alternatywny - Nieobsługiwane — nowy typ kanału dodany w aktualizacji dla twórców. Umożliwia wysyłanie nieprzetworzonych powiadomień do dowolnej aplikacji Windows, w tym tych, które nie są zarejestrowane w Sklepie. Ponownie należy pamiętać, że alternatywny kanał nie jest już obsługiwany.

Note

Niezależnie od tego, którego kanału wypychania używasz, po uruchomieniu aplikacji na urządzeniu zawsze będzie można wysyłać powiadomienia wyskakujące lokalne, kafelki lub znaczki. Aplikacja może wysyłać lokalne powiadomienia z przednich procesów aplikacji lub z zadań w tle.

Kanały podstawowe

Są to najczęściej używane kanały w Windows teraz i są dobre dla niemal każdego scenariusza, w którym aplikacja będzie dystrybuowana za pośrednictwem Microsoft Store. Umożliwiają one wysyłanie wszystkich typów powiadomień do aplikacji.

Co umożliwiają kanały podstawowe?

  • Wysyłanie kafelka lub aktualizacji znaczka do kafelka podstawowego. Jeśli użytkownik zdecydował się przypiąć twój kafelek do ekranu startowego, to jest twoja szansa, aby się zaprezentować. Wysyłaj aktualizacje z przydatnymi informacjami lub przypomnieniami o doświadczeniach w twojej aplikacji.
  • Wysyłanie powiadomień toast. Powiadomienia toast są okazją, aby natychmiast przekazać pewne informacje użytkownikowi. Są one wyświetlane przez powłokę na wierzchu większości aplikacji i są przechowywane w centrum akcji, aby użytkownik mógł wrócić do nich i korzystać z nich później.
  • Wysyłanie nieprzetworzonych powiadomień w celu wyzwolenia zadania w tle. Czasami chcesz wykonać pewną pracę w imieniu użytkownika na podstawie powiadomienia. Nieprzetworzone powiadomienia umożliwiają uruchamianie zadań w tle aplikacji
  • Szyfrowanie komunikatów zapewnione przez Windows podczas przesyłania przy użyciu protokołu TLS. Komunikaty są szyfrowane na przewodach przychodzących do usługi WNS i przechodzących do urządzenia użytkownika.

Ograniczenia kanałów podstawowych

  • Wymaga użycia interfejsu API REST usługi WNS do wypychania powiadomień, które nie są standardowe dla dostawców urządzeń.
  • Na aplikację można utworzyć tylko jeden kanał
  • Wymaga zarejestrowania aplikacji w Microsoft Store

Tworzenie kanału podstawowego

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

Pomocnicze kanały kafelków

Są to kanały, których można używać do przesyłania aktualizacji kafelków i znaczków na kafelek pomocniczy. Są one używane przez aplikacje do powiadamiania użytkowników o interesujących działaniach lub informacjach, z którymi mogą korzystać w aplikacji, takich jak nowe wiadomości na czacie grupowym lub zaktualizowany wynik sportowy.

Co umożliwiają drugorzędne kanały kafelków?

  • Wysyłanie powiadomień kafelków lub znaczków do kafelków pomocniczych. Kafelki pomocnicze to doskonały sposób ściągania użytkowników z powrotem do aplikacji. Są one istotnym odnośnikiem do informacji, które ich interesują, a zamieszczenie odpowiednich informacji na kafelkach pomaga przyciągnąć ich ponownie i ponownie.
  • Rozdzielenie kanałów (i terminy ważności) między różnymi kafelkami. Dzięki temu można oddzielić logikę zaplecza między różnymi typami kafelków pomocniczych, które użytkownik może przypiąć do ekranu startowego.
  • Szyfrowanie komunikatów podczas przesyłania realizowane przez Windows z użyciem protokołu TLS. Komunikaty są szyfrowane na przewodach przychodzących do usługi WNS i przechodzących do urządzenia użytkownika.

Ograniczenia wtórnych kanałów kafelków

  • Brak toastów ani powiadomień surowych. Toast lub surowe powiadomienia wysyłane do pomocniczego kafelka są ignorowane przez system.
  • Wymaga zarejestrowania aplikacji w Microsoft Store

Tworzenie dodatkowego kanału dla kafelka

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

Alternatywne kanały

Alternatywne kanały umożliwiają aplikacjom wysyłanie powiadomień push bez rejestrowania się w Microsoft Store lub tworzenia kanałów push poza głównym kanałem używanym dla aplikacji.

Note

Od 1 lipca 2021 r. aplikacje, które chcą używać kanału wypychania internetowego lub alternatywnego kanału do wysyłania powiadomień opartych na przeglądarce za pośrednictwem usługi WNS, będą musiały zostać dołączone do Microsoft Store.

Co umożliwiają kanały alternatywne?

  • Wysyłaj surowe powiadomienia push do systemu Windows na dowolnym urządzeniu. Alternatywne kanały zezwalają tylko na nieprzetworzone powiadomienia (jednak nadal można obudzić zadanie w tle, aby lokalnie wyświetlać wyskakujące powiadomienia lub kafelki).
  • Umożliwia aplikacjom tworzenie wielu surowych kanałów push dla różnych funkcji w aplikacji. Aplikacja może utworzyć maksymalnie 1000 alternatywnych kanałów, a każdy z nich jest ważny przez 30 dni. Każdy z tych kanałów można zarządzać lub odwoływać oddzielnie przez aplikację.
  • Alternatywne kanały powiadomień push można tworzyć bez rejestrowania aplikacji w Microsoft Store. Jeśli aplikacja zostanie zainstalowana na urządzeniach bez zarejestrowania jej w Microsoft Store, wciąż będzie mogła otrzymywać powiadomienia push.
  • Serwery mogą wypychać powiadomienia przy użyciu standardowych interfejsów API REST W3C i protokołu VAPID. Alternatywne kanały używają standardowego protokołu W3C, co pozwala uprościć logikę serwera, która musi być utrzymywana.
  • Pełne, kompleksowe szyfrowanie komunikatów. Chociaż kanał podstawowy zapewnia szyfrowanie podczas przesyłania, jeśli chcesz być bardzo bezpieczny, alternatywne kanały umożliwiają aplikacji przekazywanie nagłówków szyfrowania w celu ochrony komunikatu.

Ograniczenia kanałów alternatywnych

  • Serwer Twojej aplikacji nie może wysyłać powiadomień typu push, toast, kafelek lub badge. Możesz wysyłać tylko nieprzetworzone powiadomienia push. Aplikacja nadal może wysyłać lokalne powiadomienia z działania w tle.
  • Wymaga innego interfejsu API REST niż podstawowe lub pomocnicze kanały kafelków. Użycie standardowego interfejsu API REST W3C oznacza, że Twoja aplikacja będzie musiała mieć inną logikę wysyłania powiadomień push typu toast lub aktualizacji kafelków.

Tworzenie alternatywnego kanału

PushNotificationChannel webChannel = 
	await PushNotificationChannelManager.GetDefault().CreateRawPushNotificationChannelWithAlternateKeyForApplicationAsync(applicationServerKey, appChannelId);

Porównanie typów kanałów

Oto krótkie porównanie różnych typów kanałów:

Type Wypchnij powiadomienia toast? Wypychanie kafelka/znaczka? Wysyłać surowe powiadomienia? Authentication API Wymagana rejestracja w sklepie? Channels Encryption
Primary Yes Tak — tylko kafelek podstawowy Yes OAuth WNS REST API Yes Jeden na aplikację W tranzycie
Dodatkowy kafelek No Tak — tylko pomocniczy kafelek No OAuth WNS REST API Yes Jeden na każdy dodatkowy kafelek W tranzycie
Alternate No No Yes VAPID WebPush W3C Standard No 1000 na aplikację W trakcie przesyłu + szyfrowanie end-to-end możliwe przy użyciu przekazywania nagłówka (wymaga kodu aplikacji)

Wybieranie odpowiedniego kanału

Ogólnie rzecz biorąc, zalecamy używanie kanału podstawowego w aplikacji z kilkoma wyjątkami:

  1. Jeśli wysyłasz aktualizację kafelka do drugorzędnego kafelka, użyj kanału powiadomień dla kafelków drugorzędnych.
  2. Jeśli przekazujesz kanały do innych usług (takich jak w przypadku przeglądarki), użyj alternatywnego kanału.
  3. Jeśli tworzysz aplikację, która nie będzie wyświetlana w sklepie Windows (takim jak aplikacja LOB), użyj alternatywnego kanału.
  4. Jeśli na serwerze masz istniejący kod powiadomień push, który chcesz użyć ponownie, lub potrzebujesz wielu kanałów komunikacyjnych w usłudze backendu, użyj alternatywnych kanałów.