Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Oznámení aplikace je automaticky otevírané okno uživatelského rozhraní, které se zobrazí mimo okno vaší aplikace a poskytuje uživateli včasné informace nebo akce. Oznámení můžou být čistě informační, můžou aplikaci spustit po kliknutí nebo aktivovat akci na pozadí, aniž by se aplikace přenesla do popředí.
Tento článek vás provede postupem vytvoření a odeslání oznámení aplikace z konzolové aplikace .NET a následné zpracování aktivace, když s ní uživatel pracuje. Tento článek používá rozhraní API Windows App SDKMicrosoft.Windows.AppNotifications.
Přehled oznámení aplikací a pokynů pro další architektury najdete v přehledu oznámení aplikací.
Tento článek se zabývá místními oznámeními. Informace o doručování oznámení z cloudové služby najdete v tématu Nabízená oznámení.
Důležité
Notifikace pro aplikace se zvýšenými oprávněními (správce) nejsou aktuálně podporována.
Předpoklady
- Konzolová aplikace .NET cílící na .NET 6 nebo novější
- Balíček NuGet Windows App SDK (
Microsoft.WindowsAppSDK)
Nastavení projektu
V souboru projektu (.csproj) se ujistěte, že TargetFramework obsahuje cílovou architekturu Windows:
<TargetFramework>net9.0-windows10.0.19041.0</TargetFramework>
Přidejte balíček NuGet Windows App SDK:
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.7.250310001" />
Pro rozbalené aplikace přidejte:
<WindowsPackageType>None</WindowsPackageType>
Registrace oznámení aplikací
V metodě Main zaregistrujte obslužnou rutinu NotificationInvokedpředvoláním funkce Register. Konzolová aplikace musí zůstat spuštěná, aby po kliknutí na oznámení přijímala zpětná volání aktivace.
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();
Poznámka:
U rozbalených aplikací Register() automaticky nastaví registraci serveru COM, která umožňuje Windows spustit aplikaci po kliknutí na oznámení. Aktivaci modelu COM ani AUMID nemusíte konfigurovat ručně.
Odeslání oznámení aplikace
Pomocí AppNotificationBuilder vytvořte obsah oznámení a AppNotificationManager.Show k odeslání oznámení.
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);
Zachování spuštěné aplikace
Aby byla obslužná rutina NotificationInvoked volána, musí být konzolová aplikace stále spuštěná, když uživatel klikne na oznámení. Pokud se aplikace ukončí před tím, než uživatel začne s oznámením pracovat, dalším kliknutím se spustí nový proces.
Console.WriteLine("Notification sent! Waiting for activation...");
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
// Unregister when the app exits
AppNotificationManager.Default.Unregister();
Kompletní příklad
Tady je úplný postup Program.cs , který odešle oznámení a zpracuje aktivaci:
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();
Související obsah
Windows developer