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 應用程式?
-
應用程式通知概覽 — 本地及推播應用程式通知
AppNotificationManager - 應用程式通知快速啟動
-
推送通知概述 — 使用 WNS 進行推送
PushNotificationManager
建立或維護 UWP 應用程式?
要將 UWP 應用程式遷移到 Windows 應用程式 SDK?