选择正确的推送通知通道类型

本文介绍了三种类型的 Windows 推送通知通道(主要、辅助和备用),帮助你将内容提供给你的应用。

(有关如何创建推送通知的详细信息,请参阅 Windows 推送通知服务 (WNS) 概述。)

推送通道的类型

可以使用三种类型的推送通道向 Windows 应用发送通知。 它们是:

主通道 - “传统”推送通道。 商店中的任何应用都可以使用它来发送 toast、tile、raw 或 badge 通知。 在此处了解更多信息

辅助磁贴通道 - 用于推送辅助磁贴的磁贴更新。 只能用于将磁贴或锁屏提醒通知发送到用户开始屏幕上固定的辅助磁贴

- - 创意者更新中添加的新型频道。 利用它,可以将原始通知发送给任何 Windows 应用,包括未在应用商店中注册的应用。 同样,请注意,不再支持备用通道。

注意

无论使用哪种推送通道,应用在设备上运行时,它始终能够发送本地 Toast、磁贴或锁屏提醒通知。 它可以从前台应用进程或后台任务发送本地通知。

主要通道

这些是 Windows 上最常用的频道,适用于几乎任何应用将通过 Microsoft 应用商店分发的应用的情况。 它们允许向应用发送所有类型的通知。

主要通道启用哪些功能?

  • 向主磁贴发送磁贴或锁屏提醒更新。 如果用户已选择将磁贴固定到“开始”屏幕,则有机会显示。 使用应用中有用的信息或体验提醒发送更新。
  • 发送 Toast 通知。 Toast 通知是立即在用户面前获取一些信息的机会。 它们由 shell 在大多数应用顶部绘制,并位于操作中心,以便用户可以稍后返回并与其交互。
  • 发送原始通知以触发后台任务。 有时,你希望根据通知代表用户执行一些工作。 原始通知允许应用的后台任务运行
  • 使用 TLS 在 Windows 提供的传输中消息加密。 消息在传入 WNS 并转到用户的设备上进行加密。

主要通道的限制

  • 需要使用 WNS REST API 推送通知,这并非跨设备供应商的标准。
  • 每个应用只能创建一个通道
  • 要求在 Microsoft 应用商店中注册应用

创建主通道

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

辅助磁贴通道

这些通道可用于将磁贴和锁屏提醒更新推送到辅助磁贴。 这些应用用于通知用户有趣的操作或信息,他们可以在应用中进行交互,例如群聊中的新消息或更新的体育分数。

辅助磁贴通道启用哪些功能?

  • 向辅助磁贴发送磁贴或锁屏提醒通知。 辅助磁贴是将用户拉回应用的绝佳方法。 它们是他们关心的信息的深层链接,并将相关信息放在磁贴上有助于再次返回它们。
  • 不同磁贴之间的通道(和到期时间)分离。 这样,你可以在用户可能固定到其启动屏幕的各种辅助磁贴之间分隔后端中的逻辑。
  • 使用 TLS 在 Windows 提供的传输中消息加密。 消息在传入 WNS 并转到用户的设备上进行加密。

辅助磁贴通道的限制

  • 不允许使用 Toast 或原始通知。 系统忽略发送到辅助磁贴的 Toast 或原始通知。
  • 要求在 Microsoft 应用商店中注册应用

创建辅助磁贴通道

PushNotificationChannel channel = 
	await PushNotificationChannelManager.CreatePushNotificationChannelForSecondaryTileAsync(tileId);

备用通道

备用通道使应用无需注册到 Microsoft 应用商店或创建用于应用的主要通道之外的推送通道即可发送推送通知。

注意

自 2021 年 7 月 1 日起,想要使用 Web 推送通道或备用通道通过 WNS 发送基于浏览器的通知的应用程序将需要加入 Microsoft Store。

备用通道启用哪些功能?

  • 向任何 Windows 设备上运行的 Windows 发送原始推送通知。 备用通道仅允许原始通知(但是仍然可以唤醒后台任务以在本地显示 toast 或磁贴通知)。
  • 允许应用为应用中的不同功能创建多个原始推送通道。 应用最多可以创建 1000 个备用通道,每个通道有效期为 30 天。 每个通道都可以由应用单独管理或撤销。
  • 可以在不向 Microsoft Store 注册应用的情况下创建备用推送通道。 如果你的应用将在设备上安装,而无需在 Microsoft 应用商店中注册它,它仍将能够接收推送通知。
  • 服务器可以使用 W3C 标准 REST API 和 VAPID 协议推送通知。 备用通道使用 W3C 标准协议,这样就可以简化需要维护的服务器逻辑。
  • 完整、端到端的消息加密。 虽然主通道在传输过程中提供加密,但如果你想要额外的安全,备用通道使你的应用能够传递加密标头来保护消息。

备用通道的限制

  • 应用的服务器无法发送推送 toast、磁贴或徽章类型通知。 只能发送推送原始通知。 应用仍可从后台任务发送本地通知。
  • 需要不同于主要或辅助磁贴通道的 REST API。 使用标准 W3C REST API 意味着应用需要具有不同的逻辑来发送推送 Toast 或磁贴更新

创建备用通道

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

通道类型比较

下面是不同类型的通道之间的快速比较:

类型 推送 toast? 推送磁贴/锁屏提醒? 推送原始通知? 身份验证 应用程序接口 需要存储注册? 通道 加密
主要节点 是 - 仅主磁贴 OAuth WNS REST API 每个应用一个 运输途中
辅助磁贴 是 - 仅辅助磁贴 OAuth WNS REST API 每个辅助磁贴一个 运输途中
备用 无趣 WebPush W3C 标准 每个应用 1,000 个 在传输 + 端到端加密中,标头传递可能(需要应用代码)

选择正确的通道

一般情况下,我们建议在应用中使用主通道,但有一些例外情况:

  1. 如果要将磁贴更新推送到辅助磁贴,请使用辅助磁贴推送通道。
  2. 如果要将通道传递给其他服务(例如在浏览器的情况下),请使用备用通道。
  3. 如果要创建未在 Windows 应用商店(如 LOB 应用)中列出的应用,请使用备用通道。
  4. 如果服务器上存在要重复使用或需要后端服务中的多个通道的现有 Web 推送代码,请使用备用通道。