Menggunakan pemberitahuan aplikasi dengan aplikasi UWP

Pemberitahuan aplikasi adalah popup UI yang muncul di luar jendela aplikasi Anda, mengirimkan informasi atau tindakan tepat waktu kepada pengguna. Pemberitahuan dapat murni informasi, dapat meluncurkan aplikasi Anda saat diklik, atau dapat memicu tindakan latar belakang tanpa membawa aplikasi Anda ke latar depan.

Cuplikan layar pemberitahuan aplikasi

Artikel ini memandu Anda melalui langkah-langkah untuk membuat dan mengirim pemberitahuan aplikasi dari aplikasi UWP, lalu menangani aktivasi saat pengguna berinteraksi dengannya.

Untuk gambaran umum pemberitahuan dan panduan aplikasi untuk kerangka kerja lain, lihat Gambaran umum pemberitahuan aplikasi.

Artikel ini membahas pemberitahuan lokal. Untuk informasi tentang mengirimkan pemberitahuan dari layanan awan, lihat Gambaran umum pemberitahuan push.

Prasyarat

  • Proyek aplikasi UWP di Visual Studio
  • Komponen Platform Windows Universal yang diinstal di Visual Studio

Mengirim pemberitahuan aplikasi

Aplikasi UWP menggunakan namespace Windows.UI.Notifications untuk membuat dan mengirim pemberitahuan menggunakan XML. Bagian ini menunjukkan cara mengirim pemberitahuan menggunakan C# dan 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);

Pengelolaan aktivasi

Saat pengguna mengklik pemberitahuan Anda (atau tombol pada pemberitahuan dengan aktivasi latar depan), metode aplikasi OnActivated Anda dipanggil. OnLaunched tidak digunakan saat aktivasi notifikasi, walaupun aplikasi Anda sudah ditutup dan baru pertama kali diluncurkan. Sebaiknya gabungkan OnLaunched dan OnActivated ke dalam metode inisialisasi bersama.

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

Untuk informasi tentang menambahkan tombol, gambar, input, audio, dan konten kaya lainnya ke pemberitahuan Anda, lihat Konten pemberitahuan aplikasi.