Поделиться через


Содержимое уведомления приложения

Уведомления приложения — это гибкие уведомления с текстом, изображениями и кнопками и входными данными. В этой статье описываются элементы пользовательского интерфейса, которые можно использовать в уведомлении приложения и приведены примеры кода для создания xml-формата для уведомления приложения.

Note

Термин "тост-уведомление" заменяется на "уведомление приложения". Эти термины относятся к одной и той же функции Windows, но со временем мы будем постепенно отказываться от использования термина «всплывающее уведомление» в документации.

Getting started

Уведомления приложений определяются с помощью полезных данных XML, определенных схемой уведомлений приложения. В настоящее время существует три способа создания полезных данных XML для уведомления приложения. Примеры кода в этой статье демонстрируют все три метода:

  • API Microsoft.Windows.AppNotifications.Builder были впервые представлены в Windows App SDK 1.2. Это пространство имен предоставляет API, позволяющие легко программно создавать XML-структуру для уведомлений, не беспокоясь о специфике формата XML. Примеры кода, использующие эти API, находятся на вкладках с меткой "Пакет SDK для приложений Windows".
  • Microsoft.Toolkit.Uwp.Notifications Синтаксис построителя — эти API являются частью набора средств сообщества UWP и обеспечивают поддержку приложений UWP. Хотя эти API также можно использовать для приложений Windows SDK, и которые продолжают поддерживаться, мы рекомендуем для новых реализаций использовать API Microsoft.Windows.AppNotifications.Builder. Чтобы использовать API Community Toolkit, добавьте в проект пакет UWP Community Toolkit Notifications nuget. Примеры C#, приведенные в этой статье, используют версию 7.0.0 пакета NuGet. Примеры кода, использующие эти API, находятся на вкладках с меткой "Набор средств сообщества Windows".
  • Необработанный XML- Если вы предпочитаете, можно создать собственный пользовательский код для создания XML-строк в требуемом формате. Необработанные примеры XML находятся на вкладках с меткой "XML".

Установка визуализатора уведомлений. Это бесплатное приложение для Windows помогает создавать интерактивные тост-уведомления, показывая их мгновенное визуальное представление во время редактирования, аналогично редактору и просмотру конструктора XAML в Visual Studio. См. Визуализатор уведомлений для получения дополнительной информации, или скачайте Визуализатор уведомлений из Магазина.

В этой статье рассматривается только создание содержимого уведомления приложения. Сведения об отправке уведомления после создания полезных данных XML см. Уведомление локального приложения.

Структура уведомлений приложения

Некоторые важные высокоуровневые компоненты XML-данных уведомлений приложения включают:

  • всплывающей: атрибут запуска этого элемента определяет, какие аргументы будут переданы в приложение, когда пользователь щелкает всплывающее уведомление, что позволяет получить подробные ссылки на правильное содержимое, отображаемое всплывающее уведомление. Дополнительные сведения см. в статье "Отправка уведомления о локальном приложении".
  • визуальный: этот элемент представляет визуальную часть всплывающего уведомления, включая универсальную связывающую структуру, содержащую текст и изображения.
  • действия: этот элемент представляет интерактивную часть всплывающего элемента, включая вводы и действия.
  • аудио: этот элемент указывает звук, воспроизводимый при отображении всплывающего уведомления пользователю.
var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", "9813")

    .AddText("Some text")

    .AddButton(new AppNotificationButton("Archive")
        .AddArgument("action", "archive"))

    .SetAudioUri(new Uri("ms-appx:///Sound.mp3"));

Ниже приведено визуальное представление содержимого уведомления приложения:

Снимок экрана с уведомлением приложения с метками для области атрибуции в верхней части экрана, где показаны значок приложения и название приложения Notifications Visualizer. Средняя часть текста уведомления помечена как визуализируемая область и включает три строки текста. Нижний раздел уведомления помечен как область действий и содержит две кнопки:

Attribution area

Область атрибуции находится в верхней части уведомления приложения. Начиная с Windows 11 в этой области отображаются имя и значок приложения. Область атрибуции также включает кнопку закрытия, которая позволяет пользователю быстро закрыть уведомление и многоточие меню, которое позволяет пользователю быстро отключить уведомления для приложения или перейти на страницу параметров Windows для уведомлений вашего приложения. Область атрибуции настраивается оболочкой системы и не может быть переопределена в XML-данных toast, хотя ваше приложение может добавлять элементы в контекстное меню области атрибуции. Дополнительные сведения см. в действия контекстного меню.

Visual

Каждое уведомление приложения должно указывать визуальный элемент , где вы должны предоставить универсальную привязку всплывающего уведомления, которая может содержать текст и изображения. Эти элементы будут отображаться на различных устройствах Windows, включая настольные компьютеры, телефоны, планшеты и Xbox.

Сведения обо всех атрибутах, поддерживаемых в разделе визуального и его дочерних элементах, см. в схеме уведомлений приложений.

Text elements

Каждое уведомление приложения должно содержать по крайней мере один текстовый элемент и может содержать два дополнительных текстовых элемента, все тип AdaptiveText.

Снимок экрана: уведомление приложения с тремя строками текста. Верхняя строка текста полужирна.

Начиная с юбилейного обновления Windows 10, вы можете управлять количеством строк текста с помощью свойства HintMaxLines в тексте. Значение по умолчанию (и максимальное) составляет до 2 строк текста для заголовка и до 4 строк (в сочетании) для двух дополнительных элементов описания (второй и третий Адаптивный текст).

var builder = new AppNotificationBuilder()
    .AddArgument("conversationId", 9813)
    .AddText("Adaptive Tiles Meeting", new AppNotificationTextProperties().SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

Inline image

По умолчанию изображения отображаются в строке, сразу после текстовых элементов, заполняя полную ширину визуального участка.

Снимок экрана уведомления приложения, показывающий размещение изображения по умолчанию, встроенное и заполняющее полную ширину визуальной области.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetInlineImage(new Uri("ms-appx:///Images/InlineImage.png"));

AppNotificationManager.Default.Show(builder.BuildNotification());

Переопределение логотипа приложения

Указание значения размещения «appLogoOverride» приведет к отображению изображения в виде квадрата на левой стороне визуальной зоны. Имя этого свойства отражает поведение в предыдущих версиях Windows, где изображение заменит изображение логотипа приложения по умолчанию. В Windows 11 логотип приложения отображается в специально отведенной области атрибуции, поэтому он не замещается расположением изображения appLogoOverride.

Размеры изображения составляют 48x48 пикселей в 100% масштабировании. Обычно рекомендуется предоставлять версию каждого ресурса значка для каждого коэффициента масштабирования: 100%, 125%, 150%, 200%и 400%.

Снимок экрана уведомления о приложении, демонстрирующий размещение изображения замены логотипа приложения в квадрате, расположенном слева от визуальной области уведомления.

var builder = new AppNotificationBuilder()
    .AddText("Featured image of the day.")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/AppLogo.png"));

Hint crop

Рекомендации по стилю Майкрософт рекомендуют представлять изображения профилей с циклическим изображением, чтобы обеспечить согласованное представление людей в приложениях и оболочке. Задайте свойству HintCrop значение Circle для отображения изображения с круглым обрезанием.

Скриншот уведомления приложения, где логотип приложения заменяет размещение изображения, обрезанное по кругу и расположенное в левой части визуальной области уведомления.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetAppLogoOverride(new Uri("ms-appx:///Images/Profile.png"), AppNotificationImageCrop.Circle);

Hero image

Новый в юбилейном обновлении: уведомления о приложении могут отображать изображение героя, которое является избранным ToastGenericHeroImage отображается в всплывающем баннере и в центре уведомлений. Размеры изображения составляют 364x180 пикселей при масштабировании 100%.

Снимок экрана: уведомление о приложении с размещением изображения героя над областью атрибуции.

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

Ограничения размера изображения

Изображения, используемые во всплывающем уведомлении, можно взять из...

  • http://
  • ms-appx:///
  • ms-appdata:///

Для удаленных веб-образов http и https существуют ограничения на размер файла каждого отдельного образа. В обновлении Fall Creators Update (16299) мы увеличили ограничение на 3 МБ для обычных подключений и 1 МБ на лимитных подключениях. До этого изображения всегда были ограничены 200 КБ.

Normal connection Metered connection До выхода осеннего обновления Creators Update
3 MB 1 MB 200 KB

Если изображение превышает допустимый размер файла, не удалось загрузить или превышено время ожидания, изображение будет удалено, а оставшаяся часть уведомления будет показана.

Attribution text

Новое в юбилейном обновлении: если вам нужно ссылаться на источник содержимого, можно использовать текст указания источника. Этот текст всегда отображается под любыми текстовыми элементами, но выше встроенных изображений. Текст использует немного меньший размер, чем стандартные текстовые элементы, чтобы отличаться от обычных текстовых элементов.

В более старых версиях Windows, которые не поддерживают атрибутивный текст, текст просто отображается как очередной текстовый элемент (при условии, что у вас еще нет трех текстовых элементов).

Снимок экрана всплывающего уведомления с текстом атрибуции

var builder = new AppNotificationBuilder()
    .AddText("Marry Anne")
    .AddText("Check out where we camped last night!")
    .SetAttributionText("via SMS");
    .SetHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));

Custom timestamp

Новое в Creators Update: теперь вы можете переопределить метку времени, предоставляемую системой, с помощью собственной метки времени, которая точно представляет, когда было создано сообщение/информация/содержимое. Эта метка времени отображается в Центре уведомлений.

Снимок экрана: уведомление в Центре уведомлений с пользовательской меткой времени

Дополнительные сведения об использовании настраиваемой метки времени см. в разделе , посвящённом меткам времени в уведомлениях.

var builder = new AppNotificationBuilder()
    .AddText("Matt sent you a friend request")
    .AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
    .SetTimeStamp(new DateTime(2017, 04, 15, 19, 45, 00, DateTimeKind.Utc));

Progress bar

New in Creators Update. Вы можете предоставить индикатор хода выполнения в уведомлении приложения, чтобы пользователь был проинформирован о ходе выполнения таких операций, как скачивание.

Снимок экрана всплывающего уведомления с индикатором выполнения.

Дополнительные сведения об использовании индикатора прогресса Toast см. в .

Headers

Новое в Creators Update: вы можете группировать уведомления по заголовкам в Центре уведомлений. Например, можно группировать сообщения из группового чата под заголовком, или уведомления на общую тему под заголовком, и не только.

Снимок экрана центра уведомлений с несколькими уведомлениями для приложения

Дополнительные сведения об использовании заголовков см. в заголовках toast.

Adaptive content

Новый в юбилейном обновлении. Помимо содержимого, указанного выше, можно также отобразить дополнительное адаптивное содержимое, которое отображается при развертывании всплывающего уведомления.

Это дополнительное содержимое указывается с помощью адаптивной версии, о которой можно узнать больше, прочитав документацию по адаптивных плиток.

Обратите внимание, что любое адаптивное содержимое должно содержаться в адаптивной группе. В противном случае он не будет отображаться с помощью адаптивной функции.

Столбцы и текстовые элементы

Ниже приведен пример использования столбцов и некоторых расширенных адаптивных текстовых элементов. Так как текстовые элементы находятся в AdaptiveGroup, они поддерживают все богатые свойства адаптивного стиля.

Снимок экрана всплывающего уведомления с группами текстовых элементов, выровненными по левому и правому краю визуальной области уведомления.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support adaptive text elements.

Buttons

Кнопки делают уведомления в вашем приложении интерактивными, позволяя пользователю быстро выполнять действия без прерывания текущего рабочего процесса. Например, пользователи могут отвечать на сообщение непосредственно из всплывающего уведомления или удалять электронную почту, даже не открывая приложение электронной почты. Кнопки отображаются в развернутой части уведомления.

Дополнительные сведения о реализации кнопок см. в разделе Отправка локальных уведомлений.

Кнопки могут активировать приложение следующим образом:

  • Приложение активируется на переднем плане с аргументом, который можно использовать для перехода к определенной странице или контексту.
  • Другое приложение активируется с помощью запуска протокола.
  • Фоновая активация поддерживается явно для приложений UWP. Для приложений пакета SDK для приложений windows приложение всегда запускается на переднем плане. Приложение может вызвать AppInstance.GetActivatedEventArgs, чтобы определить, была ли активация вызвана уведомлением и определить, следует ли полностью запустить приложение переднего плана или просто обработать уведомление и выйти.
  • Системные действия, такие как снос или закрытие уведомления, поддерживаются как для приложений UWP, так и для пакета SDK для приложений Windows. API AppNotificationBuilder не поддерживают этот сценарий, но приложения пакета SDK для windows могут реализовать этот сценарий с помощью API Microsoft.Windows.AppNotifications.Builder или необработанного XML.

Note

Вы можете использовать только до 5 кнопок (включая пункты контекстного меню, которые мы обсудим позже).

Снимок экрана уведомления с строкой текста, за которой следуют два кнопки, определенные элементами действия.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("New product in stock!")
        .AddButton(new AppNotificationButton("See more details")
            .AddArgument("action", "viewDetails"))
            .AddArgument("contentId", "351")
        .AddButton(new AppNotificationButton("Remind me later")
            .AddArgument("action", "remindLater"))
            .AddArgument("contentId", "351");

Кнопки со значками

Вы можете добавить значки в кнопки. Эти значки являются белыми прозрачными изображениями размером 16x16 пикселей при масштабировании 100% и не должны содержать отступов. Если вы решили предоставить значки в интерфейсе всплывающего уведомления, необходимо предоставить значки для всех ваших кнопок в уведомлении, так как это преобразует стиль кнопок в кнопки значка.

Note

Для специальных возможностей обязательно включите контрастную белую версию значка (черный значок для белых фонов), чтобы при включении пользователем режима высокой контрастности белый значок был виден. Дополнительные сведения см. в разделе поддержка уведомлений для плиток и всплывающих элементов для языка, масштабирования и высокой контрастности.

Снимок экрана: уведомление о приложении, использующее кнопки со значками.

new ToastContentBuilder()
    var builder = new AppNotificationBuilder()
        .AddText("Return books to the library.")
        .AddButton(new AppNotificationButton("Accept")
            .AddArgument("action", "accept")
            .SetIcon(new Uri("ms-appx:///Images/Accept.png")))
        .AddButton(new AppNotificationButton("Snooze")
            .AddArgument("action", "snooze")
            .SetIcon(new Uri("ms-appx:///Images/Snooze.png")))
        .AddButton(new AppNotificationButton("Dismiss")
            .AddArgument("action", "dismiss")
            .SetIcon(new Uri("ms-appx:///Images/Dismiss.png")));

New in Windows 11 Update: вы можете добавить подсказки к значкам с помощью свойства HintToolTip в XML. Это идеально подходит, если на ваших кнопках есть значки, но нет содержимого, так как это позволит передать текст, который экранный диктор Windows может читать. Однако если содержимое присутствует, тогда Нарратор будет читать его независимо от того, что передается в подсказке.

var button = new AppNotificationButton("Reply")
    .AddArgument("action", "reply");

if (AppNotificationButton.IsToolTipSupported())
{
    button.ToolTip = "Click to reply.";
}

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .AddButton(button); 

Кнопки с цветами

Новое в обновлении Windows 11: можно добавить красный или зеленый цвет к вашим кнопкам, добавив атрибут useButtonStyle в XML-элемент toast и атрибут hint-buttonStyle к XML-элементу действия, как показано ниже.

Снимок экрана: уведомление с тремя кнопками, две левые кнопки зеленые с значками для запуска видеозвонка или запуска аудиозвонка. Третья кнопка является красной и имеет значок для отклонения вызова.

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .AddText("Incoming Call - Mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///Images/Profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Video Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Video.png"))
        .AddArgument("videoId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Answer Phone Call")
        .SetButtonStyle(AppNotificationButtonStyle.Success)
        .SetIcon(new Uri("ms-appx:///Images/Call.png"))
        .AddArgument("callId", "123"))
    .AddButton(new AppNotificationButton()
        .SetToolTip("Hang Up")
        .SetButtonStyle(AppNotificationButtonStyle.Critical)
        .SetIcon(new Uri("ms-appx:///Images/HangUp.png"))
        .AddArgument("hangUpId", "123"));

Действия контекстного меню

Новое в обновлении к годовщине. Вы можете добавить дополнительные действия контекстного меню в существующее контекстное меню, которое отображается, когда пользователь щелкает уведомление правой кнопкой мыши или выбирает значок контекстного меню.

Note

На более старых устройствах эти дополнительные действия контекстного меню будут просто отображаться как обычные кнопки в уведомлении.

Дополнительные действия контекстного меню, которые вы добавили (например, "Отключить групповой чат в течение 1 часа") отображаются над двумя записями системы по умолчанию.

Тост с контекстным меню

var builder = new AppNotificationBuilder()
    .AddText("Camping this weekend?")
    .SetAppLogoOverride(new Uri("ms-appx:///images/Reply.png"), AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Mute group chat for 1 hour")
        .AddArgument("action", "mute")
        .SetContextMenuPlacement());

Note

Дополнительные элементы контекстного меню включаются в общее ограничение на 5 кнопок во всплывающем уведомлении.

Активация дополнительных элементов контекстного меню обрабатывается идентичным способом, как и кнопки тост-сообщений.

Inputs

Входные данные указываются в области Действия уведомлений приложения и видны только при развертывании уведомления.

Текстовое поле быстрого ответа

Чтобы включить текстовое поле быстрого ответа (например, в приложении для обмена сообщениями) добавьте ввод текста и кнопку и наведите ссылку на идентификатор поля ввода текста, чтобы кнопка отображалась рядом с полем ввода. Необязательный значок для кнопки, если он указан, должен быть изображением размером 32x32 пикселя без полей, с белыми пикселями, сделанными прозрачными, и шкалой прозрачности 100%.

Снимок экрана уведомления с изображением профиля и несколькими строками текста. Включено текстовое поле для ввода текста непосредственно в уведомление, а также кнопка для отправки ответа.

var builder = new AppNotificationBuilder()
    .AddTextBox("textBox", "Type a reply", "Reply")
    .AddButton(AppNotificationButton("Send")
        .AddArguments("action", "Send")
        .SetInputId("textBox"))
    .BuildNotification();

Поля ввода с панелью кнопок

Кроме того, можно иметь одно (или несколько) полей ввода с обычными кнопками, расположенными под ними.

Снимок экрана: уведомление приложения с строкой текста, текстовым полем и строкой с двумя кнопками с надписью

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support quick reply text boxes.

Selection input

Помимо текстовых полей, можно также использовать меню выбора.

Снимок экрана с уведомлением приложения, показывающим строку текста, элемент выбора с

var builder = new AppNotificationBuilder()
    .AddText("4th coffee?")
    .AddText("When do you plan to come in tomorrow?")
    .AddComboBox(new AppNotificationComboBox("time")
        .SetTitle("Select an item:")
        .AddItem("breakfast", "Breakfast")
        .AddItem("lunch", "Lunch")
        .AddItem("dinner", "Dinner")
        .SetSelectedItem("lunch"))
    .AddButton(new AppNotificationButton("Reply")
        .AddArgument("action", "reply")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement())
    .AddButton(new AppNotificationButton("Call restaurant")
        .AddArgument("action", "videocall")
        .AddArgument("threadId", "9218")
        .SetContextMenuPlacement());

Snooze/dismiss

С помощью меню выбора и двух кнопок мы можем создать уведомление о напоминании, которое использует системный отказ и закрытие действий. Убедитесь, что в сценарии задано значение "Напоминание", чтобы уведомление выглядело как напоминание.

Снимок экрана: уведомление приложения со строками текста, описывающее время и расположение собрания. В поле выбора выбрано значение

Мы связаем кнопку "Отсохать" к входным данным меню выбора с помощью свойства SelectionBoxId на кнопке всплывающей кнопки.

Синтаксис Microsoft.Windows.AppNotifications.Builder в настоящее время не поддерживает активацию системы. Но этот сценарий поддерживается для приложений пакета SDK для приложений для приложений для Приложений Windows, и вы можете создавать уведомления для этого сценария с помощью Microsoft.Toolkit.Uwp.Notifications API или необработанного XML- кода.

// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support system activation. 
// But this scenario is supported for Windows App SDK apps, and you can build notifications for this 
// scenario using the `Microsoft.Toolkit.Uwp.Notifications` APIs or raw XML.

Чтобы использовать действия системы "отложить" и "отклонить", выполните следующие действия:

  • Выберите ToastButtonSnooze или ToastButtonDismiss
  • При необходимости укажите настраиваемую строку содержимого:
  • Если вы не укажете строку, мы автоматически используем локализованные строки для "Snooze" и "Скрыть".
  • Укажите SelectionBoxIdпри необходимости.
  • Если вы не хотите, чтобы пользователь выбирал интервал ожидания и вместо этого просто хотите, чтобы уведомление отложилось только один раз для системного интервала времени (согласованного в ОС), то не создавайте никаких <входных> вообще.
  • Если требуется предоставить варианты интервалов отложений: — укажите SelectionBoxId в действии отложений — сопоставьте идентификатор входных данных с SelectionBoxId действия отложений — укажите значение ToastSelectionBoxItemненегативным целым числом, представляющим интервал отложений в минутах.

Audio

Пользовательский звук всегда поддерживается на мобильных устройствах и поддерживается в настольной версии 1511 (сборка 10586) или более поздних версиях. На пользовательский звук можно ссылаться по следующим путям:

  • ms-appx:///
  • ms-appdata:///
var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioUri(new Uri("ms-appx:///Audio/NotificationSound.mp3"));

Кроме того, можно выбрать из списка ms-winsoundevents, которые всегда поддерживаются на обеих платформах.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetAudioEvent(AppNotificationSoundEvent.Alarm, AppNotificationAudioLooping.Loop);

См. страницу , схему звука для получения информации об аудио в уведомлениях приложений. Чтобы узнать, как отправить уведомление о приложении, использующее пользовательский звук, см. пользовательские звуки на тостах.

Scenarios

Чтобы создать важные уведомления, оповещения, напоминания и уведомления о входящих звонках, вы просто используете обычное уведомление приложения с назначенным ему значением сценария. Сценарий настраивает несколько действий, чтобы создать согласованный и унифицированный интерфейс пользователя. Существует четыре возможных значения сценария :

  • Reminder
  • Alarm
  • IncomingCall
  • Urgent

Reminders

В сценарии напоминания уведомление будет оставаться на экране, пока пользователь его не закроет или не предпримет действия. В Windows Mobile уведомление приложения также будет отображаться в полностью развернутом виде. Будет воспроизводиться звук напоминания. Необходимо указать по крайней мере одну кнопку в уведомлении приложения. В противном случае уведомление будет рассматриваться как обычное уведомление.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Reminder);

Alarms

Сигналы тревоги ведут себя так же, как напоминания, за исключением того, что звук сигнала тревоги будет циклично проигрываться со звуком будильника по умолчанию. Необходимо указать по крайней мере одну кнопку в уведомлении приложения. В противном случае уведомление будет рассматриваться как обычное уведомление.

var builder = new AppNotificationBuilder()
    .AddText("Notification text.")
    .SetScenario(AppNotificationScenario.Alarm)
    .AddButton(new AppNotificationButton("Dismiss")
        .AddArgument("action", "dismiss"));

Incoming calls

Уведомления о входящих звонках отображаются в развернутом виде в специальном формате вызова и остаются на экране пользователя до удаления. Звук ringtone будет циклироваться по умолчанию. На устройствах Windows Mobile они отображаются на полноэкранном экране.

всплывающее уведомление о входящем вызове

var builder = new AppNotificationBuilder()
    .SetScenario(AppNotificationScenario.IncomingCall)
    .AddText("Andrew Bares", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
    .AddText("incoming call - mobile", new AppNotificationTextProperties()
        .SetIncomingCallAlignment())
      .SetInlineImage(new Uri("ms-appx:///images/profile.png"),
        AppNotificationImageCrop.Circle)
    .AddButton(new AppNotificationButton("Text reply")
        .SetToolTip("Text reply")
        .SetIcon(new Uri("ms-appx:///images/reply.png"))
        .AddArgument("textId", "123"))
    .AddButton(new AppNotificationButton("Reminder")
        .SetToolTip("Reminder")
        .SetIcon(new Uri("ms-appx:///images/reminder.png"))
        .AddArgument("reminderId", "123"))
    .AddButton(new AppNotificationButton("Ignore")
        .SetToolTip("Ignore")
        .SetIcon(new Uri("ms-appx:///images/ignore.png"))
        .AddArgument("ignoreId", "123"))
    .AddButton(new AppNotificationButton("Answer")
        .SetToolTip("Answer")
        .SetIcon(new Uri("ms-appx:///images/answer.png"))
        .AddArgument("answerId", "123"));

Important Notifications

Important

требуется. Для использования важных уведомлений необходимо запустить сборку предварительной версии Windows 22546 или более поздней версии.

Важные уведомления позволяют пользователям лучше контролировать приложения от первой и третьей стороны, отправляющие им уведомления о приложениях с высоким приоритетом (срочные или важные), которые могут преодолевать режим "Не беспокоить". Это можно изменить в параметрах уведомлений.

Снимок экрана: уведомление о срочном приложении с восклицательным знаком в области атрибуции рядом с именем приложения. На изображении также показано уведомление, инициированное системой приложение, которое предоставляет кнопки для пользователя, чтобы разрешить или запретить срочные уведомления из приложения.

var builder = new AppNotificationBuilder()
    .AddText("Adaptive Tiles Meeting", 
        new AppNotificationTextProperties()
            .SetMaxLines(1))
    .AddText("Conf Room 2001 / Building 135")
    .AddText("10:00 AM - 10:30 AM");

if (AppNotificationBuilder.IsUrgentScenarioSupported())
{
    builder.SetScenario(AppNotificationScenario.Urgent);
}

Локализация и доступность

Плитки и уведомления приложений могут загружать строки и изображения, адаптированные для языка отображения, коэффициента масштабирования дисплея, высокой контрастности и других контекстов среды выполнения. Более подробную информацию см. в разделе о поддержке уведомлений плитки и всплывающих уведомлений для языка, масштабирования и высокой контрастности.

Handling activation

Чтобы узнать, как обрабатывать активации приложений (пользователь, щелкнув тост или кнопки на тосте), см. Отправка локального тоста.