Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una notificación de aplicación es un elemento emergente de la interfaz de usuario que aparece fuera de la ventana de la aplicación, lo que proporciona información oportuna o acciones al usuario. Las notificaciones pueden ser puramente informativas, pueden iniciar la aplicación cuando se hace clic o pueden desencadenar una acción en segundo plano sin llevar la aplicación al primer plano.
Este artículo le guía por los pasos para crear y enviar una notificación de aplicación desde una aplicación de consola de .NET y, a continuación, controlar la activación cuando el usuario interactúa con ella. En este artículo se usan las API de SDK de Aplicaciones para WindowsMicrosoft.Windows.AppNotifications.
Para obtener información general sobre las notificaciones de aplicaciones y las instrucciones de otros marcos, consulte Introducción a las notificaciones de aplicaciones.
En este artículo se tratan las notificaciones locales. Para obtener información sobre cómo entregar notificaciones desde un servicio en la nube, consulte Notificaciones push.
Importante
Actualmente no se admiten las notificaciones de aplicaciones con privilegios elevados (administradores).
Prerrequisitos
- Una aplicación de consola de .NET destinada a .NET 6 o posterior
- Paquete NuGet SDK de Aplicaciones para Windows (
Microsoft.WindowsAppSDK)
Configura tu proyecto
En el archivo del proyecto (.csproj), asegúrese de que el TargetFramework incluye una plataforma de destino de Windows:
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Agregue el paquete NuGet SDK de Aplicaciones para Windows:
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
En el caso de las aplicaciones sin empaquetar, agregue:
<WindowsPackageType>None</WindowsPackageType>
Registro para notificaciones de aplicaciones
En el Main método, registre el controlador NotificationInvokedantes de llamar a Register. La aplicación de consola debe seguir ejecutándose para recibir callbacks de activación al hacer clic en las notificaciones.
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();
Nota:
En el caso de las aplicaciones sin empaquetar, Register() configura automáticamente el registro del servidor COM que permite que Windows inicie la aplicación cuando se hace clic en una notificación. No es necesario configurar manualmente la activación COM ni un AUMID.
Envío de una notificación de aplicación
Use AppNotificationBuilder para construir contenido de notificación y AppNotificationManager.Show para enviar una notificación.
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);
Mantener la aplicación en ejecución
Para que se llame al NotificationInvoked controlador, la aplicación de consola debe seguir ejecutándose cuando el usuario hace clic en la notificación. Si la aplicación sale antes de que el usuario interactúe con la notificación, el siguiente clic iniciará en frío un nuevo proceso.
Console.WriteLine("Notification sent! Waiting for activation...");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
// Unregister when the app exits
AppNotificationManager.Default.Unregister();
Ejemplo completo
Este es un proceso completo Program.cs que envía una notificación y controla la activación:
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();