Alkalmazásértesítések használata konzolalkalmazással

Az alkalmazásértesítések egy olyan felhasználói felületi előugró ablak, amely az alkalmazás ablakán kívül jelenik meg, és időben szolgáltat információkat vagy műveleteket a felhasználónak. Az értesítések lehetnek pusztán tájékoztató jellegűek, kattintáskor elindíthatják az alkalmazást, vagy háttérműveleteket indíthatnak el anélkül, hogy előtérbe kerülnek az alkalmazás.

Alkalmazásértesítés képernyőképe

Ez a cikk bemutatja, hogyan hozhat létre és küldhet alkalmazásértesítést egy .NET konzolalkalmazásból, majd kezelheti az aktiválást, amikor a felhasználó interakcióba lép vele. Ez a cikk a Windows App SDKMicrosoft.Windows.AppNotifications API-kat használja.

Az alkalmazásértesítések áttekintéséért és az egyéb keretrendszerekhez kapcsolódó útmutatásért tekintse meg az alkalmazásértesítések áttekintését.

Ez a cikk a helyi értesítéseket ismerteti. Az értesítések felhőszolgáltatásból való kézbesítéséről további információt a Leküldéses értesítések című témakörben talál.

Fontos

Az emelt szintű (rendszergazdai) alkalmazások értesítései jelenleg nem támogatottak.

Előfeltételek

  • 6-os vagy újabb .NET célzó .NET konzolalkalmazás
  • A Windows App SDK NuGet-csomag (Microsoft.WindowsAppSDK)

Állítsa be a projektjét

A projektfájlban (.csproj) győződjön meg arról, hogy a TargetFramework tartalmaz egy Windows cél keretrendszert:

<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>

Adja hozzá a Windows App SDK NuGet-csomagot:

<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />

Csomagolatlan alkalmazások esetén adja hozzá a következőt:

<WindowsPackageType>None</WindowsPackageType>

Alkalmazásértesítések regisztrálása

A Main metódusban regisztrálja a NotificationInvoked kezelőt mielőtt meghívja a Regisztrál metódust. A konzolalkalmazásnak továbbra is futnia kell az aktiválási visszahívások fogadásához, amikor az értesítésekre kattint.

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();

Megjegyzés:

Csomagolatlan alkalmazások esetén a Register() automatikusan beállítja a COM-kiszolgáló regisztrációját, amely lehetővé teszi, hogy Windows elindítsa az alkalmazást, amikor egy értesítésre kattint. Nem kell manuálisan konfigurálnia a COM-aktiválást vagy az AUMID-t.

Alkalmazásértesítés küldése

Az AppNotificationBuilder használatával értesítési tartalmakat hozhat létre, és az AppNotificationManager.Show használatával értesítéseket küldhet.

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);

Az alkalmazás futásának megtartása

NotificationInvoked A kezelő meghívásához a konzolalkalmazásnak továbbra is futnia kell, amikor a felhasználó az értesítésre kattint. Ha az alkalmazás kilép, mielőtt a felhasználó az értesítéssel kommunikál, a következő kattintással új folyamatot indíthat el.

Console.WriteLine("Notification sent! Waiting for activation...");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();

// Unregister when the app exits
AppNotificationManager.Default.Unregister();

Teljes példa

Itt talál egy teljes Program.cs, amely értesítést küld és kezeli az aktiválást:

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();