App-meldingen gebruiken met een UWP-app

Een app-melding is een pop-up van de gebruikersinterface die buiten het venster van uw app wordt weergegeven, waarbij tijdige informatie of acties aan de gebruiker worden geleverd. Meldingen kunnen puur informatief zijn, uw app starten wanneer erop wordt geklikt of een achtergrondactie activeren zonder uw app op de voorgrond te plaatsen.

Schermopname van een app-melding

In dit artikel wordt u begeleid bij de stappen voor het maken en verzenden van een app-melding vanuit een UWP-app en het verwerken van de activering wanneer de gebruiker ermee communiceert.

Zie het overzicht van app-meldingen en -richtlijnen voor andere frameworks voor een overzicht van app-meldingen.

In dit artikel worden lokale meldingen behandeld. Zie het overzicht van pushmeldingen voor informatie over het leveren van meldingen van een cloudservice.

Vereiste voorwaarden

  • Een UWP-app-project in Visual Studio
  • De Universeel Windows-platform development workload die in Visual Studio is geïnstalleerd

Een app-melding verzenden

UWP-apps gebruiken de Windows.UI.Notifications-naamruimte om meldingen te maken en te verzenden met behulp van XML. In deze sectie ziet u hoe u meldingen verzendt met behulp van C# en C++.

using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;

var xml = @"<toast launch=""action=viewConversation&amp;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);

Activering afhandelen

Wanneer de gebruiker op uw melding klikt (of op een knop op de melding met voorgrondactivering), wordt de OnActivated methode van uw app aangeroepen. OnLaunched wordt niet aangeroepen voor activeringen van meldingen, zelfs niet als uw app is gesloten en voor het eerst wordt gestart. We raden aan om OnLaunched en OnActivated samen te voegen in een gedeelde initialisatiemethode.

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

Zie App-meldingsinhoud voor informatie over het toevoegen van knoppen, afbeeldingen, invoer, audio en andere uitgebreide inhoud aan uw meldingen.