Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Уведомление о приложении — это всплывающее окно пользовательского интерфейса, которое отображается вне окна приложения, предоставляя пользователю своевременную информацию или действия. Уведомления могут быть исключительно информационными, могут запускать приложение при щелчке или запускать фоновое действие без вывода приложения на передний план.
В этой статье описаны действия по созданию и отправке уведомления приложения из приложения UWP, а затем обработать активацию при взаимодействии с ним пользователем.
Общие сведения о уведомлениях и рекомендациях для других платформ см. в обзоре уведомлений о приложениях.
В этой статье рассматриваются локальные уведомления. Сведения о доставке уведомлений из облачной службы см. в обзоре push-уведомлений.
Необходимые условия
- Проект приложения UWP в Visual Studio
- Рабочая нагрузка разработки универсальная платформа Windows, установленная в Visual Studio
Отправка уведомления о приложении
Приложения UWP используют пространство имен Windows.UI.Notifications для создания и отправки уведомлений с помощью XML. В этом разделе показано, как отправлять уведомления с помощью C# и 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);
Обработка активации
Когда пользователь щелкает уведомление (или кнопку на уведомлении с активацией переднего плана), вызывается метод приложения OnActivated .
OnLaunched не вызывается для активации уведомлений, даже если приложение было закрыто и запускается в первый раз. Мы рекомендуем объединить OnLaunched и OnActivated в общий метод инициализации.
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;
}
}
Сведения о добавлении кнопок, изображений, входных данных, звука и других расширенных содержимого в уведомлениях см. в разделе "Содержимое уведомлений приложений".