Konsol uygulamasıyla uygulama bildirimlerini kullanma

Uygulama bildirimi, uygulamanızın penceresinin dışında görünen ve kullanıcıya zamanında bilgi veya eylemler sunan bir kullanıcı arabirimi açılır penceresidir. Bildirimler tamamen bilgilendirilebilir, tıklandığında uygulamanızı başlatabilir veya uygulamanızı ön plana getirmeden bir arka plan eylemi tetikleyebilir.

Uygulama bildiriminin ekran görüntüsü

Bu makalede, bir .NET konsol uygulamasından uygulama bildirimi oluşturma ve gönderme ve kullanıcı etkileşime geçtiğinde etkinleştirmeyi işleme adımlarında size yol gösterilir. Bu makalede Windows Uygulama SDK'sıMicrosoft.Windows.AppNotifications API'leri kullanılır.

Uygulama bildirimlerine genel bakış ve diğer çerçevelere yönelik yönergeler için bkz. Uygulama bildirimlerine genel bakış.

Bu makale yerel bildirimleri kapsar. Bulut hizmetinden bildirim gönderme hakkında bilgi için bkz. Anında iletme bildirimleri.

Önemli

Yükseltilmiş (yönetici) uygulamalar için bildirimler şu anda desteklenmemektedir.

Önkoşullar

  • .NET 6 veya üzerini hedefleyen .NET konsol uygulaması
  • Windows Uygulama SDK'sı NuGet paketi (Microsoft.WindowsAppSDK)

Projenizi ayarlayın

Proje dosyanızda (.csproj), TargetFramework Windows bir hedef çerçeve içerdiğinden emin olun:

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

Windows Uygulama SDK'sı NuGet paketini ekleyin:

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

Paketlenmemiş uygulamalar için şunları ekleyin:

<WindowsPackageType>None</WindowsPackageType>

Uygulama bildirimlerine kaydolma

YönteminizdeMain, Register'ıçağırmadan önceNotificationInvoked işleyicisini kaydedin. Bildirimler tıklandığında etkinleştirme geri çağırmalarını almak için konsol uygulamasının çalışır durumda kalması gerekir.

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

Uyarı

Paketlenmemiş uygulamalar için Register(), Windows bir bildirim tıklandığında uygulamanızı başlatmasını sağlayan COM sunucu kaydını otomatik olarak ayarlar. COM etkinleştirmesini veya AUMID'yi el ile yapılandırmanız gerekmez.

Uygulama bildirimi gönderme

Bildirim içeriği oluşturmak için AppNotificationBuilder ve bildirim göndermek için AppNotificationManager.Show kullanı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);

Uygulamayı çalışır durumda tutma

İşleyicinin NotificationInvoked çağrılabilmesi için, kullanıcı bildirime tıkladığında konsol uygulamasının hala çalışıyor olması gerekir. Kullanıcı bildirimle etkileşim kurmadan önce uygulamadan çıkılırsa, sonraki tıklama yeni bir işlemi soğuk başlatacaktır.

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

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

Tam örnek

İşte bildirim gönderen ve etkinleştirmeyi işleyen eksiksiz bir Program.cs:

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