共用方式為


Windows 通知概述

Windows 提供多個不同 SDK 世代的通知 API。 如果你在網路上搜尋如何發送通知,卻發現範例互相矛盾,這個頁面將幫助你為你的應用程式選擇合適的 API。

我應該使用哪個 API?

答案取決於你的應用程式針對哪個 SDK:

應用程式類型 推薦的 API 命名空間
WinUI 3 / Windows 應用程式 SDK(新應用程式) AppNotificationManager Microsoft.Windows.AppNotifications
WPF、WinForms 或未封裝的 Win32 AppNotificationManager 資料來源:NuGet Microsoft.Windows.AppNotifications
UWP(現有應用程式,無遷移計畫) ToastNotificationManager Windows.UI.Notifications

這很重要

大多數 Stack Overflow 的答案和舊的教學都是使用 Windows.UI.Notifications 命名空間中的 ToastNotificationManager。 這是 UWP WinRT API。 它能在 UWP 應用程式中使用,也可能在某些桌面場景中有效,但並非新 Windows App SDK 應用程式的推薦路徑。 請使用 AppNotificationManager 進行新開發。

通知 API 比較

Feature 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 App SDK 應用程式?

建立或維護 UWP 應用程式?

要將 UWP 應用程式遷移到 Windows 應用程式 SDK?