UWP uygulamasıyla uygulama bildirimlerini kullanma

Uygulama bildirimi, uygulamanızın penceresinin dışında görünen ve kullanıcıya zamanında bilgi veya eylemler sunan bir kullanıcı arabirimi açılır penceresidir. Bildirimler tamamen bilgilendirilebilir, tıklandığında uygulamanızı başlatabilir veya uygulamanızı ön plana getirmeden bir arka plan eylemi tetikleyebilir.

Uygulama bildiriminin ekran görüntüsü

Bu makalede, UWP uygulamasından uygulama bildirimi oluşturma ve gönderme ve kullanıcı etkileşime geçtiğinde etkinleştirmeyi işleme adımlarında size yol gösterilir.

Uygulama bildirimlerine genel bakış ve diğer çerçevelere yönelik yönergeler için bkz. Uygulama bildirimlerine genel bakış.

Bu makale yerel bildirimleri kapsar. Bulut hizmetinden bildirim gönderme hakkında bilgi için Anlık bildirimlere genel bakış bölümüne bakın.

Önkoşullar

  • Visual Studio'de UWP uygulama projesi
  • Visual Studio’da Evrensel Windows Platformu geliştirme iş yükü kurulu

Uygulama bildirimi gönderme

UWP uygulamaları, XML kullanarak bildirim oluşturmak ve göndermek için Windows.UI.Notifications ad alanını kullanır. Bu bölümde, C# ve C++ kullanarak bildirim gönderme gösterilmektedir.

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

Aktivasyonu yönetme

Kullanıcı bildiriminize (veya ön plan etkinleştirmeli bildirimdeki bir düğmeye) tıkladığında uygulamanızın OnActivated yöntemi çağrılır. OnLaunched uygulamanız kapatılıp ilk kez başlatılıyor olsa bile bildirim etkinleştirmeleri için çağrılmaz. Öneriyoruz OnLaunched ve OnActivated öğelerinin paylaşılan bir başlatma yönteminde birleştirilmesini.

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

Bildirimlerinize düğme, görüntü, giriş, ses ve diğer zengin içerik ekleme hakkında bilgi için bkz. Uygulama bildirimi içeriği.