Partilhar via


Ativação de notificações do tipo toast de aplicações de desktop

Os aplicativos Win32 empacotados e não empacotados podem enviar notificações interativas de aviso da mesma forma que os aplicativos UWP. Isso inclui aplicativos empacotados (consulte Criar um novo projeto para um aplicativo de desktop WinUI 3 empacotado); aplicativos empacotados com recursos externos (consulte Conceder identidade ao pacote ao empacotar com recursos externos); e aplicativos não empacotados (consulte Criar um novo projeto para um aplicativo de desktop WinUI 3 não empacotado).

No entanto, para um aplicativo Win32 não empacotado, há algumas etapas especiais. Isso se deve aos diferentes esquemas de ativação e à falta de identidade do pacote em tempo de execução.

Neste tópico, listamos as opções que tem para enviar uma notificação toast no Windows 10. Todas as opções têm total suporte...

  • Persistindo na Central de Ações
  • Ser ativável a partir do pop-up e dentro da Central de Ações
  • Pode ser ativado enquanto o EXE não está em execução.

Todas as opções

A tabela abaixo ilustra as suas opções para suporte a notificações tipo toast na sua aplicação de ambiente de trabalho e os respetivos recursos suportados. Você pode usar a tabela para selecionar a melhor opção para o seu cenário.

Option Visuals Actions Inputs Ativado durante o processo
Ativador COM Supported Supported Supported Supported
Sem suporte COM / Stub CLSID Supported Supported Não suportado Não suportado

Opção preferida - ativador COM

Esta é a opção preferida que funciona para aplicações de ambiente de trabalho e suporta todas as funcionalidades de notificação. Não tenha medo do "ativador COM"; temos uma biblioteca para aplicações C# e C++ que torna isto muito simples, mesmo que nunca tenha escrito um servidor COM antes.

Visuals Actions Inputs Ativa-se durante o processo
Supported Supported Supported Supported

Com a opção de ativador COM, você pode usar os seguintes modelos de notificação e tipos de ativação em seu aplicativo.

Modelo e tipo de ativação Packaged Unpackaged
ToastGeneric Primeiro Plano Supported Supported
Antecedentes do ToastGeneric Supported Supported
Protocolo ToastGeneric Supported Supported
Modelos legados Supported Não suportado

Note

Se adicionar o ativador COM à sua aplicação empacotada existente, as ativações de notificação Foreground/Background e Legacy ativarão o seu ativador COM em vez da linha de comando.

Para saber como usar esta opção, consulte Enviar uma notificação local de aplicativos C# do desktop ou Enviar uma notificação local de aplicativos Win32 C++ WRL.

Opção alternativa - sem COM / Stub CLSID

Esta é uma opção alternativa se você não puder implementar um ativador COM. No entanto, você sacrificará alguns recursos, como suporte de entrada (caixas de texto em notificações do sistema) e ativação no processo.

Visuals Actions Inputs Ativa-se durante o processo
Supported Supported Não suportado Não suportado

Com esta opção, se você suporta desktop, então você está muito mais limitado nos modelos de notificação e tipos de ativação que você pode usar, como visto abaixo.

Modelo e tipo de ativação Packaged Unpackaged
ToastGeneric em Primeiro Plano Supported Não suportado
Antecedentes do ToastGeneric Supported Não suportado
Protocolo ToastGeneric Supported Supported
Modelos legados Supported Não suportado

Para aplicações empacotadas, basta enviar notificações de toast da mesma forma que uma aplicação UWP. Quando o utilizador clicar na sua notificação de toaster, a sua aplicação será lançada a partir da linha de comando com os argumentos de inicialização que especificou na notificação.

Para aplicativos não empacotados, configure o AUMID para que você possa enviar notificações do sistema e, em seguida, especifique também um CLSID no atalho. Pode ser qualquer identificador GUID aleatório. Não adicione o servidor/ativador COM. Você está adicionando um CLSID COM "stub", o que fará com que a Central de Ações persista a notificação. Observe que pode usar apenas notificações de ativação por protocolo, porque o CLSID do stub interromperá a ativação de quaisquer outras notificações. Portanto, você precisa atualizar seu aplicativo para dar suporte à ativação de protocolo e fazer com que o protocolo do sistema ative seu próprio aplicativo.

Resources