Välja rätt kanaltyp för push-meddelanden

Den här artikeln beskriver de tre typerna av Windows push-meddelandekanaler (primära, sekundära och alternativa) som hjälper dig att leverera innehåll till din app.

(Mer information om hur du skapar push-meddelanden finns i översikten Windows Push Notification Services (WNS).)

Typer av push-kanaler

Det finns tre typer av push-kanaler som kan användas för att skicka meddelanden till en Windows app. De är:

Primär kanal – den "traditionella" push-kanalen. Kan användas av alla appar i butiken för att skicka toast-meddelanden, plattmeddelanden, råa meddelanden eller märken. Mer information finns här.

Sekundär panelkanal – används för att push-överföra paneluppdateringar till en sekundär panel. Kan endast användas för att skicka panel- eller märkesmeddelanden till en sekundär panel fäst på användarens startskärm

Alternativ kanal - Stöds inte längre – En ny typ av kanal som lagts till i Creators Update. Det gör att råa meddelanden kan skickas till alla Windows app, inklusive de som inte är registrerade i Store. Observera återigen att den alternativa kanalen inte längre stöds.

Note

Oavsett vilken push-kanal du använder, när din app körs på enheten, kan den alltid skicka lokala toast-, platta- eller märkesmeddelanden. Den kan skicka lokala meddelanden från förgrundsappens processer eller från en bakgrundsaktivitet.

Primära kanaler

Dessa är de vanligaste kanalerna på Windows just nu och är bra för nästan alla scenarion där din app kommer att distribueras via Microsoft Store. De gör att du kan skicka alla typer av meddelanden till appen.

Vad aktiverar primära kanaler?

  • Skickar panel- eller märkesuppdateringar till den primära panelen. Om användaren har valt att fästa panelen på startskärmen är det här din chans att visa upp. Skicka uppdateringar med användbar information eller påminnelser om upplevelser i din app.
  • Skickar informationsmeddelanden. "Toast-notiser är en chans att få information framför användaren omedelbart." De visas av skalet ovanpå de flesta appar och finns i åtgärdscentret så att användaren kan gå tillbaka och interagera med dem senare.
  • Skicka rådatameddelanden för att utlösa en bakgrundsaktivitet. Ibland vill du utföra en del arbete för användarens räkning baserat på ett meddelande. Råa meddelanden gör att appens bakgrundsaktiviteter kan köras
  • Meddelandekryptering under överföring som tillhandahålls av Windows med hjälp av TLS. Meddelanden krypteras på kabeln som både kommer till WNS och går till användarens enhet.

Begränsningar för primära kanaler

  • Kräver att WNS REST API används för push-meddelanden, vilket inte är standard för enhetsleverantörer.
  • Endast en kanal kan skapas per app
  • Kräver att din app registreras i Microsoft Store

Skapa en primär kanal

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

Sekundära rutkanaler

Det här är kanaler som kan användas för att push-överföra panel- och märkesuppdateringar till en sekundär panel. Dessa används av appar för att meddela användarna om intressanta åtgärder eller information som de kan interagera med i appen, till exempel nya meddelanden i en gruppchatt eller en uppdaterad sportpoäng.

Vad möjliggör sekundära panelkanaler?

  • Skickar panel- eller märkesmeddelanden till sekundära paneler. Sekundära paneler är ett bra sätt att hämta tillbaka användare till din app. De är en djup länk till information som de bryr sig om, och att lägga till relevant information på panelerna hjälper till att få dem tillbaka om och om igen.
  • Åtskillnad av kanaler (och utgångsdatum) mellan olika plattor. På så sätt kan du separera logiken i serverdelen mellan de olika typerna av sekundära paneler som en användare kan fästa på startskärmen.
  • Meddelandekryptering under överföring som tillhandahålls av Windows med hjälp av TLS. Meddelanden krypteras på kabeln som både kommer till WNS och går till användarens enhet.

Begränsningar för sekundära panelkanaler

  • Inga toast-meddelanden eller råa meddelanden tillåts. Popup-meddelanden eller råa meddelanden som skickas till en sekundär panel ignoreras av systemet.
  • Kräver att din app registreras i Microsoft Store

Skapa en sekundär plattkanal

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

Alternativa kanaler

Alternativa kanaler gör det möjligt för appar att skicka push-meddelanden utan att registrera sig för Microsoft Store eller skapa push-kanaler utanför den primära som används för appen.

Note

Från och med den 1 juli 2021 måste program som vill använda webb-push-kanalen eller den alternativa kanalen för att skicka webbläsarbaserade meddelanden via WNS registreras i Microsoft Store.

Vad aktiverar alternativa kanaler?

  • Skicka råa push-meddelanden till Windows som körs på alla enheter med Windows. Alternativa kanaler tillåter endast råmeddelanden, men du kan fortfarande aktivera en bakgrundsaktivitet för att lokalt visa aviserings- eller panelmeddelanden.
  • Gör att appar kan skapa flera råa push-kanaler för olika funktioner i appen. En app kan skapa upp till 1 000 alternativa kanaler och var och en är giltig i 30 dagar. Var och en av dessa kanaler kan hanteras eller återkallas separat av appen.
  • Alternativa push-kanaler kan skapas utan att registrera en app med Microsoft Store. Om appen ska installeras på enheter utan att registrera den i Microsoft Store kan den fortfarande ta emot push-meddelanden.
  • Servrar kan skicka meddelanden med hjälp av W3C-standard-REST API:er och VAPID-protokoll. Alternativa kanaler använder W3C-standardprotokollet, vilket gör att du kan förenkla serverlogiken som behöver underhållas.
  • Fullständig meddelandekryptering från slutpunkt till slutpunkt. Medan den primära kanalen tillhandahåller kryptering under överföring, gör alternativa kanaler att appen kan passera genom krypteringshuvuden för att skydda ett meddelande om du vill vara extra säker.

Begränsningar för alternativa kanaler

  • Appens server kan inte skicka push-meddelanden av typen toast, panel eller ikon. Du kan bara skicka råa push-aviseringar. Appen kan fortfarande skicka lokala meddelanden från bakgrundsaktiviteten.
  • Kräver ett annat REST API än antingen primära eller sekundära panelkanaler. Att använda standard-W3C REST-API:et innebär att din app måste ha annan logik för att skicka push-popup- eller paneluppdateringar

Skapa en alternativ kanal

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

Jämförelse av kanaltyp

Här är en snabb jämförelse mellan de olika typerna av kanaler:

Type Skicka push-meddelande? Push-kakelplatta/märke? Push omedelbara meddelanden? Authentication API Butiksregistrering krävs? Channels Encryption
Primary Yes Ja – endast primär panel Yes OAuth WNS REST API Yes Ett per app Under överföring
Sekundär platta No Ja – endast sekundär panel No OAuth WNS REST API Yes En per sekundär panel Under överföring
Alternate No No Yes VAPID WebPush W3C-standard No 1 000 per app Under överföring + slut-till-slut kryptering möjlig med genomlopp av header (kräver applikationskod)

Välja rätt kanal

I allmänhet rekommenderar vi att du använder den primära kanalen i din app, med några få undantag:

  1. Om du skickar en uppdatering till en sekundär ruta, använder du pushkanalen för den sekundära rutan.
  2. Om du skickar ut kanaler till andra tjänster (till exempel när det gäller en webbläsare) använder du den alternativa kanalen.
  3. Om du skapar en app som inte visas i Windows store (till exempel en LOB-app) använder du en alternativ kanal.
  4. Om du har befintlig webb-push-kod på servern som du vill återanvända eller behöver flera kanaler i serverdelstjänsten använder du alternativa kanaler.