Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma notificação de aplicação é um pop-up na interface que aparece fora da janela da sua aplicação, fornecendo informações ou ações oportunas ao utilizador. As notificações podem ser puramente informativas, podem abrir a sua aplicação ao clicar, ou podem desencadear uma ação em segundo plano sem trazer a aplicação para o primeiro plano.
Este artigo orienta-o através dos passos para criar e enviar uma notificação de app a partir de uma aplicação de consola .NET, e depois lidar com a ativação quando o utilizador interage com ela. Este artigo utiliza as APIs SDK de Aplicações WindowsMicrosoft.Windows.AppNotifications.
Para uma visão geral das notificações de aplicações e orientações para outros frameworks, consulte Visão geral das notificações de aplicações.
Este artigo aborda as notificações locais. Para informações sobre como entregar notificações a partir de um serviço na cloud, consulte Notificações Push.
Importante
As notificações para aplicações elevadas (de administrador) não são atualmente suportadas.
Pré-requisitos
- Uma aplicação de consola .NET direcionada para .NET 6 ou versões posteriores
- O pacote NuGet SDK de Aplicações Windows (
Microsoft.WindowsAppSDK)
Configure o seu projeto
No ficheiro do teu projeto (.csproj), certifica-te de que o TargetFramework inclui um framework de Windows alvo:
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Adicionar o pacote NuGet do SDK de Aplicações Windows:
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
Para aplicações não embaladas, adicione:
<WindowsPackageType>None</WindowsPackageType>
Registe-se para receber notificações de aplicações
No seu Main método, regista o handler NotificationInvokedantes de chamar Register. A aplicação de consola deve permanecer em execução para receber chamadas de ativação quando as notificações são clicadas.
Program.cs
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
// Register the notification handler before calling Register
AppNotificationManager.Default.NotificationInvoked += (sender, args) =>
{
// Handle notification activation.
// args.Argument contains the arguments from the notification
// or button that was clicked, as key=value pairs separated
// by '&', for example "action=acknowledge".
Console.WriteLine($"Notification activated! Arguments: {args.Argument}");
};
AppNotificationManager.Default.Register();
Observação
Para aplicações não empacotadas, o Register() configura automaticamente o registo do servidor COM, que permite Windows iniciar a sua aplicação quando uma notificação é clicada. Não precisas de configurar manualmente a ativação do COM ou um AUMID.
Enviar uma notificação de aplicação
Use o AppNotificationBuilder para construir o conteúdo das notificações e o AppNotificationManager.Show para enviar uma notificação.
var notification = new AppNotificationBuilder()
.AddArgument("action", "viewItem")
.AddText("Console Notification")
.AddText("This was sent from a console app using Windows App SDK.")
.AddButton(new AppNotificationButton("Acknowledge")
.AddArgument("action", "acknowledge"))
.BuildNotification();
AppNotificationManager.Default.Show(notification);
Mantém a aplicação a funcionar
Para que o NotificationInvoked handler seja chamado, a aplicação de consola tem de continuar a correr quando o utilizador clica na notificação. Se a aplicação sair antes do utilizador interagir com a notificação, o clique seguinte irá iniciar um novo processo do início.
Console.WriteLine("Notification sent! Waiting for activation...");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
// Unregister when the app exits
AppNotificationManager.Default.Unregister();
Exemplo completo
Aqui está um exemplo completo Program.cs que envia uma notificação e trata da ativação:
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
Console.WriteLine("Console App Notification Test");
// Step 1: Register for notification activation
AppNotificationManager.Default.NotificationInvoked += (sender, args) =>
{
Console.WriteLine($"Notification activated! Arguments: {args.Argument}");
};
AppNotificationManager.Default.Register();
// Step 2: Send a notification
var notification = new AppNotificationBuilder()
.AddArgument("action", "viewItem")
.AddText("Console Notification")
.AddText("This was sent from a console app using Windows App SDK.")
.AddButton(new AppNotificationButton("Acknowledge")
.AddArgument("action", "acknowledge"))
.BuildNotification();
AppNotificationManager.Default.Show(notification);
// Step 3: Wait for user interaction
Console.WriteLine("Notification sent! Click it to test activation.");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
AppNotificationManager.Default.Unregister();
Conteúdo relacionado
Windows developer