Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett appmeddelande är ett popup-fönster för användargränssnittet som visas utanför appens fönster och som levererar information eller åtgärder i tid till användaren. Meddelanden kan vara rent informationsbaserade, kan starta din app när du klickar eller utlösa en bakgrundsåtgärd utan att föra din app till förgrunden.
Den här artikeln beskriver stegen för att skapa och skicka ett appmeddelande från en .NET konsolapp och sedan hantera aktivering när användaren interagerar med den. I den här artikeln används API:erna Windows App SDKMicrosoft.Windows.AppNotifications.
En översikt över appmeddelanden och vägledning för andra ramverk finns i Översikt över appaviseringar.
Den här artikeln beskriver lokala meddelanden. Information om hur du levererar meddelanden från en molntjänst finns i Push-meddelanden.
Viktigt!
Meddelanden för upphöjda appar (administratör) stöds inte för närvarande.
Förutsättningar
- En .NET konsolapp som riktar sig till .NET 6 eller senare
- NuGet-paketet Windows App SDK (
Microsoft.WindowsAppSDK)
Konfigurera projektet
Kontrollera att .csproj innehåller ett Windows målramverk i projektfilen (TargetFramework):
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Lägg till Windows App SDK NuGet-paketet:
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
För unpackade appar, lägg till:
<WindowsPackageType>None</WindowsPackageType>
Registrera dig för appmeddelanden
I din Main metod registrerar du NotificationInvoked-hanterareninnan du anropar Registrera. Konsolappen måste fortsätta att köras för att ta emot aktiveringsåterkopplingar när notifieringar klickas på.
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();
Anmärkning
För opaketerade appar konfigurerar Register() automatiskt COM-serverregistreringen som tillåter Windows att starta appen när ett meddelande klickas. Du behöver inte konfigurera COM-aktivering eller AUMID manuellt.
Skicka ett appmeddelande
Använd AppNotificationBuilder för att skapa meddelandeinnehåll och AppNotificationManager.Show för att skicka ett meddelande.
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);
Håll appen igång
NotificationInvoked För att hanteraren ska anropas måste konsolappen fortfarande köras när användaren klickar på meddelandet. Om appen avslutas innan användaren interagerar med meddelandet kommer nästa klick att kallstarta en ny process.
Console.WriteLine("Notification sent! Waiting for activation...");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
// Unregister when the app exits
AppNotificationManager.Default.Unregister();
Fullständigt exempel
Här är en komplett Program.cs som skickar en notifiering och hanterar aktivering:
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();
Relaterat innehåll
Windows developer