通过


Windows通知概述

Windows在不同的 SDK 代系中提供多个通知 API。 如果要在线搜索如何发送通知和查找冲突示例,此页面将帮助你为应用选择正确的 API。

应使用哪个 API?

答案取决于应用面向的 SDK:

应用类型 推荐的 API 命名空间
WinUI 3 / Windows 应用 SDK (新应用) AppNotificationManager Microsoft.Windows.AppNotifications
未打包的 Win32、WPF 或 WinForms AppNotificationManager 通过 NuGet Microsoft.Windows.AppNotifications
UWP (现有应用,未计划迁移) ToastNotificationManager Windows.UI.Notifications

重要

大多数 Stack Overflow 答案和较旧的教程使用 Windows.UI.Notifications 命名空间中的 ToastNotificationManager。 这是 UWP WinRT API。 它适用于 UWP 应用,并可能在某些桌面场景中有效,但不推荐将其用作新 Windows 应用 SDK 应用的实现方式。 请使用 AppNotificationManager 进行新开发。

通知 API 比较

功能 AppNotificationManager (Windows 应用 SDK) ToastNotificationManager (WinRT)
推荐用于 WinUI 3、WPF、WinForms、非打包的 Win32 UWP
NuGet 包 Microsoft.WindowsAppSDK 无(收件箱)
需要包标识 否(打包或未打包的作品) 某些功能需要这个条件
推送集成 PushNotificationManager (Windows 应用 SDK) WNS 通道 API (Windows.Networking.PushNotifications
主动开发 是的 仅限维护

通知类型

选择正确的 API 后,确定通知的传递方式:

类型 说明 何时使用
本地应用通知 在运行时由应用代码直接触发 你想要向应用内事件的用户发出警报
已安排 设置通知显示的未来时间 日历提醒、警报
推送 (WNS) 通过Windows推送通知服务从云服务发送 聊天消息,突发新闻,实时更新
徽章 应用任务栏图标上的小覆盖层 未读计数、状态指示器

有关传递方法的完整细分,请参阅 “选择通知传递方法”。

后续步骤

生成 WinUI 3 或 Windows 应用 SDK 应用?

生成 WPF 或 WinForms 应用?

重要

Windows 应用 SDK推送通知需要 Azure 帐户Azure AD 应用注册。 如果您的应用已打包,还需要通过电子邮件提交程序包系列名称(PFN)映射请求——请预留最长一周的处理时间以便在启动前完成。 有关所有先决条件,请参阅 推送通知快速入门

生成或维护 UWP 应用?

将 UWP 应用迁移到 Windows 应用 SDK?