Elegir el tipo adecuado de canal de notificación de inserciónChoosing the right push notification channel type

En este artículo se tratan los tres tipos de canales de notificaciones de entrega de Windows (principales, secundarios y alternativos) que le ayudarán a ofrecer contenido a su aplicación.This article covers the three types of Windows push notification channels (primary, secondary, and alternate) that help you deliver content to your app.

(Para obtener más información sobre cómo crear notificaciones de envío, consulte la Introducción a Windows Notification Services (WNS)).(For details on how to create push notifications, see the Windows Push Notification Services (WNS) overview.)

Tipos de canales de envíoTypes of push channels

Hay tres tipos de canales de inserciones que se pueden usar para enviar notificaciones a una aplicación de Windows.There are three types of push channels that can be used to send notifications to a Windows app. Son las siguientes:They are:

Canal principal : el canal de instalación "tradicional".Primary channel - the "traditional" push channel. Cualquier aplicación de la tienda puede utilizarla para enviar notificaciones del sistema, de iconos, sin formato o de distintivo.Can be used by any app in the store to send toast, tile, raw, or badge notifications. Obtenga más información aquí.Learn more here.

Canal de icono secundario : se usa para enviar actualizaciones de iconos a un icono secundario.Secondary tile channel - used to push tile updates to a secondary tile. Solo se puede usar para enviar notificaciones de icono o distintivo a un icono secundario anclado en la pantalla Inicio del usuario.Can only be used to send tile or badge notifications to a secondary tile pinned on the user's start screen

Canal alternativo : un nuevo tipo de canal agregado en Creators Update.Alternate channel - A new type of channel added in the Creators Update. Permite que se envíen notificaciones sin procesar a cualquier aplicación de Windows, incluidas las que no están registradas en el almacén.It allows for raw notifications to be sent to any Windows app, including those which aren't registered in the Store.

Nota

Independientemente del canal de inserciones que use, una vez que la aplicación se ejecute en el dispositivo, siempre podrá enviar notificaciones del sistema local, el icono o el distintivo.No matter which push channel you use, once your app is running on the device, it will always be able to send local toast, tile, or badge notifications. Puede enviar notificaciones locales desde los procesos de aplicación en primer plano o desde una tarea en segundo plano.It can send local notifications from the foreground app processes or from a background task.

Canales principalesPrimary channels

Estos son los canales que se usan con más frecuencia en Windows ahora y son buenos para casi cualquier escenario en el que la aplicación se va a distribuir a través de la Microsoft Store.These are the most commonly used channels on Windows right now, and are good for almost any scenario where your app is going to be distributed through the Microsoft Store. Permiten enviar todos los tipos de notificaciones a la aplicación.They allow you to send all types of notifications to the app.

¿Qué permiten los canales principales?What do primary channels enable?

  • Enviando actualizaciones de iconos o de notificaciones al icono principal.Sending tile or badge updates to the primary tile. Si el usuario ha elegido anclar el icono a la pantalla Inicio, es su oportunidad de mostrarlo.If the user has chosen to pin your tile to the start screen, this is your chance to show off. Envíe actualizaciones con información útil o recordatorios de experiencias en la aplicación.Send updates with useful information or reminders of experiences within your app.
  • Envío de notificaciones del sistema.Sending toast notifications. Las notificaciones del sistema son una oportunidad para obtener cierta información delante del usuario inmediatamente.Toast notifications are a chance to get some information in front of the user immediately. Se dibujan por el shell sobre la mayoría de las aplicaciones y residen en el centro de actividades para que el usuario pueda volver atrás e interactuar con ellos más adelante.They are painted by the shell over top of most apps, and live in the action center so the user can go back and interact with them later.
  • Envío de notificaciones sin procesar para desencadenar una tarea en segundo plano.Sending raw notifications to trigger a background task. A veces, desea realizar algún trabajo en nombre del usuario en función de una notificación.Sometimes you want to do some work on behalf of the user based on a notification. Las notificaciones sin procesar permiten la ejecución de las tareas en segundo plano de la aplicaciónRaw notifications allow your app's background tasks to run
  • Cifrado de mensajes en tránsito proporcionado por Windows mediante TLS.Message encryption in transit provided by Windows using TLS. Los mensajes se cifran en la conexión y ambos entran en WNS y van al dispositivo del usuario.Messages are encrypted on the wire both coming into WNS and going to the user's device.

Limitaciones de los canales principalesLimitations of primary channels

  • Requiere el uso de la API de REST de WNS para notificaciones de envío, que no es estándar en todos los proveedores de dispositivos.Requires using the WNS REST API to push notifications, which isn't standard across device vendors.
  • Solo se puede crear un canal por aplicaciónOnly one channel can be created per app
  • Requiere que la aplicación se registre en el Microsoft StoreRequires your app to be registered in the Microsoft Store

Creación de un canal principalCreating a primary channel

PushNotificationChannel channel = 
    await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

Canales de mosaicos secundariosSecondary tile channels

Se trata de canales que se pueden usar para enviar actualizaciones de iconos y notificaciones a un icono secundario.These are channels that can be used to push tile and badge updates to a secondary tile. Las usan las aplicaciones para notificar a los usuarios de acciones o información interesantes con las que pueden interactuar en la aplicación, como los nuevos mensajes de un chat de grupo o una puntuación deportiva actualizada.These are used by apps to notify users of interesting actions or information that they can interact with in the app, such as new messages in a group chat or an updated sports score.

¿Qué habilitan los canales de iconos secundarios?What do secondary tile channels enable?

  • Envío de notificaciones de icono o distintivo a mosaicos secundarios.Sending tile or badge notifications to secondary tiles. Los iconos secundarios son una excelente manera de volver a insertar usuarios en la aplicación.Secondary tiles are a great way to pull users back into your app. Son un vínculo profundo a la información que le interesan, y la información relevante sobre los mosaicos ayuda a volver a devolverlos.They are a deep link to information they care about, and putting relevant information on the tiles helps to bring them back again and again.
  • Separación de los canales (y expira) entre varios mosaicos.Separation of channels (and expiries) between various tiles. Esto le permite separar la lógica del back-end entre los distintos tipos de iconos secundarios que un usuario podría anclar a su pantalla Inicio.This allows you to separate the logic in the backend between the various types of secondary tiles that a user might pin to their start screen.
  • Cifrado de mensajes en tránsito proporcionado por Windows mediante TLS.Message encryption in transit provided by Windows using TLS. Los mensajes se cifran en la conexión y ambos entran en WNS y van al dispositivo del usuario.Messages are encrypted on the wire both coming into WNS and going to the user's device.

Limitaciones de los canales de mosaicos secundariosLimitations of secondary tile channels

  • No se permiten notificaciones de notificación o sin procesar.No toast or raw notifications allowed. El sistema omite las notificaciones del sistema o las notificaciones sin procesar enviadas a un icono secundario.Toast or raw notifications sent to a secondary tile are ignored by the system.
  • Requiere que la aplicación se registre en el Microsoft StoreRequires your app to be registered in the Microsoft Store

Creación de un canal de icono secundarioCreating a secondary tile channel

PushNotificationChannel channel = 
    await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

Canales alternativosAlternate channels

Los canales alternativos permiten que las aplicaciones envíen notificaciones de envío sin registrarse en el Microsoft Store o crear canales de inserciones fuera del principal que se usa para la aplicación.Alternate channels enable apps to send push notifications without registering to the Microsoft Store or creating push channels outside of the primary one used for the app.

¿Qué habilitan los canales alternativos?What do alternate channels enable?

  • Enviar notificaciones de extracción sin formato a Windows que se ejecuta en cualquier dispositivo de Windows.Send raw push notifications to a Windows running on any Windows device. Los canales alternativos solo permiten notificaciones sin procesar (sin embargo, puede activar una tarea en segundo plano para mostrar localmente notificaciones del sistema o de iconos).Alternate channels only allow for raw notifications (however you can still wake up a background task to locally show toast or tile notifications).
  • Permite que las aplicaciones creen varios canales de inserciones sin procesar para diferentes características dentro de la aplicación.Allows apps to create multiple raw push channels for different features within the app. Una aplicación puede crear hasta 1000 canales alternativos y cada uno es válido durante 30 días.An app can create up to 1000 alternate channels, and each one is valid for 30 days. La aplicación puede administrar o revocar cada uno de estos canales por separado.Each of these channels can be managed or revoked separately by the app.
  • Se pueden crear canales de inserciones alternativos sin registrar una aplicación con el Microsoft Store.Alternate push channels can be created without registering an app with the Microsoft Store. Si la aplicación va a instalarse en dispositivos sin registrarla en el Microsoft Store, seguirá pudiendo recibir notificaciones de envío.If you app is going to be installed on devices without registering it in the Microsoft Store, it will still be able to receive push notifications.
  • Los servidores pueden enviar notificaciones de envío mediante las API de REST estándar del W3C y el protocolo VAPID.Servers can push notifications using the W3C standard REST APIs and VAPID protocol. Los canales alternativos usan el protocolo estándar de W3C, lo que permite simplificar la lógica de servidor que debe mantenerse.Alternate channels use the W3C standard protocol, this allows you to simplify the server logic that needs to be maintained.
  • Cifrado completo de mensajes de un extremo a otro.Full, end-to-end, message encryption. Mientras que el canal principal proporciona cifrado mientras está en tránsito, si desea ser más seguro, los canales alternativos permiten que la aplicación pase a través de los encabezados de cifrado para proteger un mensaje.While the primary channel provides encryption while in transit, if you want to be extra secure, alternate channels enable your app to pass through encryption headers to protect a message.

Limitaciones de los canales alternativosLimitations of alternate channels

  • El servidor de la aplicación no puede enviar notificaciones de notificación de la notificación de envío, icono o tipo de distintivo.Your app's server cannot send push toast, tile, or badge type notifications. Solo se pueden enviar notificaciones de extracción sin procesar.You can only send push raw notifications. La aplicación todavía puede enviar notificaciones locales desde la tarea en segundo plano.Your app is still able to send local notifications from your background task.
  • Requiere una API de REST diferente de la de los canales primarios o secundarios.Requires a different REST API than either primary or secondary tile channels. El uso de la API de REST de W3C estándar significa que la aplicación necesitará una lógica diferente para enviar las actualizaciones de la notificación de envío o el icono.Using the standard W3C REST API means that your app will need to have different logic for sending push toast or tile updates

Creación de un canal alternativoCreating an alternate channel

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

Comparación de tipos de canalChannel type comparison

A continuación se muestra una comparación rápida entre los distintos tipos de canales:Here is a quick comparison between the different types of channels:

TipoType ¿La notificación de la inserciones?Push toast? ¿Icono o distintivo de la inserciones?Push tile/badge? Enviar notificaciones de extracciónPush raw notifications? AutenticaciónAuthentication APIAPI ¿Es necesario el registro de almacén?Store registration required? ChannelsChannels CifradoEncryption
PrincipalPrimary Yes Sí: solo icono principalYes - primary tile only Yes OAuthOAuth API DE REST DE WNSWNS REST API Yes Una por aplicaciónOne per app En tránsitoIn Transit
Icono secundarioSecondary Tile NoNo Sí: solo mosaico secundarioYes - secondary tile only NoNo OAuthOAuth API DE REST DE WNSWNS REST API Yes Uno por icono secundarioOne per secondary tile En tránsitoIn Transit
AlternativaAlternate NoNo NoNo Yes VAPIDVAPID Webinserte W3C StandardWebPush W3C Standard NoNo 1.000 por aplicación1,000 per app En tránsito + cifrado de extremo a extremo posible con el encabezado pass through (requiere código de aplicación)In transit + end to end encryption possible with header pass through (requires app code)

Elección del canal adecuadoChoosing the right channel

En general, se recomienda usar el canal principal en la aplicación, con algunas excepciones:In general, we recommend using the primary channel in your app, with a few exceptions:

  1. Si va a insertar una actualización de icono en un icono secundario, use el canal de inserción de mosaicos secundarios.If you are pushing a tile update to a secondary tile, use the secondary tile push channel.
  2. Si va a pasar canales a otros servicios (por ejemplo, en el caso de un explorador), use el canal alternativo.If you are passing out channels to other services (such as in the case of a browser) use the alternate channel.
  3. Si está creando una aplicación que no aparecerá en la lista de la tienda Windows (por ejemplo, una aplicación de LOB), use un canal alternativo.If you are creating an app that won't be listed in the Windows store (such as an LOB app) use an alternate channel.
  4. Si tiene un código de inserciones Web en el servidor que desea reutilizar o necesita varios canales en el servicio back-end, use canales alternativos.If you have existing web push code on your server you wish to reuse or have a need for multiple channels in your backend service, use alternate channels.