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 aplikace pro UPW a následné zpracování aktivace, když s ní uživatel pracuje.
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 Přehledu push oznámení.
Předpoklady
- Projekt aplikace pro UPW v Visual Studio
- Úloha vývoje Univerzální platforma Windows nainstalovaná v Visual Studio
Odeslání oznámení aplikace
Aplikace pro UPW používají obor názvů Windows.UI.Notifications k vytváření a odesílání oznámení pomocí XML. Tato část ukazuje, jak odesílat oznámení pomocí C# a C++.
using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;
var xml = @"<toast launch=""action=viewConversation&conversationId=9813"">
<visual>
<binding template=""ToastGeneric"">
<text>Andrew sent you a picture</text>
<text>Check this out, The Enchantments in Washington!</text>
</binding>
</visual>
</toast>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var notification = new ToastNotification(doc);
ToastNotificationManager.CreateToastNotifier().Show(notification);
Ovládání aktivace
Když uživatel klikne na vaše oznámení (nebo na tlačítko na oznámení s aktivací na popředí), metoda OnActivated vaší aplikace je spuštěna.
OnLaunched není volána pro aktivaci oznámení, ani když byla vaše aplikace zavřená a spouští se poprvé. Doporučujeme zkombinovat OnLaunched a OnActivated do sdílené metody inicializace.
App.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
OnLaunchedOrActivated(e.PreviousExecutionState);
var rootFrame = Window.Current.Content as Frame;
if (e.PrelaunchActivated == false)
{
if (rootFrame?.Content == null)
{
rootFrame?.Navigate(typeof(MainPage), e.Arguments);
}
Window.Current.Activate();
}
}
protected override void OnActivated(IActivatedEventArgs e)
{
OnLaunchedOrActivated(e.PreviousExecutionState);
if (e is ToastNotificationActivatedEventArgs toastArgs)
{
var rootFrame = Window.Current.Content as Frame;
if (rootFrame?.Content == null)
{
rootFrame?.Navigate(typeof(MainPage));
}
Window.Current.Activate();
// Parse the notification arguments
string argument = toastArgs.Argument;
// TODO: Navigate to the relevant content based on the arguments
}
}
private void OnLaunchedOrActivated(ApplicationExecutionState previousState)
{
if (Window.Current.Content is not Frame)
{
var rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
Window.Current.Content = rootFrame;
}
}
Informace o přidávání tlačítek, obrázků, vstupů, zvuku a dalšího bohatého obsahu do oznámení najdete v tématu Obsah oznámení aplikace.