从桌面应用激活 Toast 通知

桌面应用(包含打包的 MSIX 应用、使用稀疏程序包来获取程序包标识符的应用,以及经典非打包桌面应用)可以像 Windows 应用一样发送交互式 toast 通知。 但是,由于激活方案不同,存在一些不同的桌面应用选项。

在本文中,我们将介绍你可以用于在 Windows 10 上发送 toast 通知的选项。 每个选项完全支持…

  • 在操作中心中保持
  • 可以从弹出窗口和操作中心内激活
  • 可在 EXE 未运行时激活

所有选项

下表说明了用于在桌面应用内支持 toast 的选项,以及对应的受支持的功能。 你可以使用此表来选择最适合你的情形的选项。

选项 视觉对象 操作 输入 在进程内激活
COM 激活器 ✔️ ✔️ ✔️ ✔️
无 COM / 存根 CLSID ✔️ ✔️

首选选项 - COM 激活器

这是适用于桌面应用的首选选项,并支持所有通知功能。 不必担心使用“COM 激活器”;我们有 C#C++ 应用的资源库,让使用此选项变得很简单,即使你之前从未编写过 COM 服务器。

视觉对象 操作 输入 在进程内激活
✔️ ✔️ ✔️ ✔️

使用 COM 激活器选项,你可以在应用中使用以下通知模板和激活类型。

模板和激活类型 MSIX/稀疏程序包 经典桌面
ToastGeneric 前台 ✔️ ✔️
ToastGeneric 后台 ✔️ ✔️
ToastGeneric 协议 ✔️ ✔️
旧版模板 ✔️

注意

如果你将 COM 激活器添加到你现有的 MSIX/稀疏程序包应用,前台/后台和旧版通知激活现在将激活 COM 激活器而不是命令行。

若要了解如何使用此选项,请参阅从桌面 C# 应用发送本地 toast 通知从 Win32 C++ WRL 应用发送本地 toast 通知

备用选项 - 无 COM / 存根 CLSID

如果你无法实现 COM 激活器,这是一个备用选项。 但是,将牺牲一些功能,如输入支持(toast 上的文本框)和在进程内激活。

视觉对象 操作 输入 在进程内激活
✔️ ✔️

使用此选项,如果你支持经典桌面,那么你能够使用的通知模板和激活类型将非常有限,如下所示。

模板和激活类型 MSIX/稀疏程序包 经典桌面
ToastGeneric 前台 ✔️
ToastGeneric 后台 ✔️
ToastGeneric 协议 ✔️ ✔️
旧版模板 ✔️

对于打包的 MSIX 应用和使用稀疏程序包的应用,只需像 UWP 应用一样发送 toast 通知。 当用户点击你的 toast 时,你的应用将使用你在 toast 中指定的启动参数启动命令行。

对于经典桌面应用,应设置 AUMID,以便你可以发送 toast,然后还应在快捷方式上指定 CLSID。 它可以是任何随机的 GUID。 不要添加 COM 服务器/激活器。 你正在添加“存根”COM CLSID,这将导致操作中心保留通知。 请注意,你只能使用协议激活 toast,因为存根 CLSID 将中断任何其他 toast 激活的激活。 因此,你必须更新你的应用以支持协议激活,并让 toast 协议激活你自己的应用。

资源