Alkalmazásértesítések használata UWP-alkalmazá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 UWP-alkalmazásból, majd kezelheti az aktiválást, amikor a felhasználó interakcióba lép vele.

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. A felhőszolgáltatás értesítéseinek kézbesítéséről további információt a Leküldéses értesítések áttekintése című témakörben talál.

Előfeltételek

  • Egy UWP-alkalmazásprojekt a Visual Studio-ban
  • A Univerzális Windows-platform fejlesztési munkaállomás, amely a Visual Studio-ban van telepítve

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

Az UWP-alkalmazások a Windows.UI.Notifications névteret használják az értesítések XML használatával történő létrehozásához és elküldéséhez. Ez a szakasz bemutatja, hogyan küldhet értesítéseket C# és C++ használatával.

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

Aktiválás kezelése

Amikor a felhasználó az értesítésre (vagy az előtér-aktiválással rendelkező értesítés egyik gombjára) kattint, a rendszer meghívja az alkalmazás metódusát OnActivated . OnLaunched a program nem kéri az értesítési aktiválásokat, még akkor sem, ha az alkalmazás bezárult, és első alkalommal indul el. Javasoljuk, hogy kombinálja OnLaunched és OnActivated egy közös inicializálási módszerrel.

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

A gombok, képek, bemenetek, hanganyagok és egyéb gazdag tartalmak értesítésekhez való hozzáadásáról az Alkalmazásértesítési tartalmak című témakörben olvashat.