Уведомления приложения — это гибкие уведомления с текстом, изображениями и кнопками и входными данными. В этой статье описываются элементы пользовательского интерфейса, которые можно использовать в уведомлении приложения и приведены примеры кода для создания xml-формата для уведомления приложения.
Примечание
Термин "всплывающее уведомление" заменяется на "уведомление приложения". Эти термины относятся к одной и той же функции Windows, но с течением времени мы будем поэтапно использовать всплывающее уведомление в документации.
Начало работы
Уведомления приложения определяются с полезными данными XML, определенными схемой уведомлений приложения. В настоящее время существует три способа создания полезных данных XML для уведомления приложения. Примеры кода в этой статье демонстрируют все три метода:
API Microsoft.Windows.AppNotifications.Builder, представленные в пакете SDK для приложений Windows 1.2, это пространство имен предоставляет API, которые позволяют легко создавать полезные данные XML для уведомления программным способом, не беспокоясь о специфике формата XML. Примеры кода, использующие эти API, находятся на вкладках с меткой "Пакет SDK для приложений Windows".
Microsoft.Toolkit.Uwp.Notifications Синтаксис построителя — эти API являются частью набора средств сообщества UWP и обеспечивают поддержку приложений UWP. Хотя эти API также можно использовать для приложений пакета SDK для приложений для Приложений Windows и продолжать поддерживать их, рекомендуется использовать новые реализации с помощью API Microsoft.Windows.AppNotifications.Builder . Чтобы использовать API набора средств сообщества, добавьте пакет nuget средств сообщества UWP в проект. Примеры C#, приведенные в этой статье, используют версию 7.0.0 пакета NuGet. Примеры кода, использующие эти API, находятся на вкладках с меткой "Набор средств сообщества Windows".
Необработанный XML- Если вы предпочитаете, можно создать собственный пользовательский код для создания XML-строк в требуемом формате. Необработанные примеры XML находятся на вкладках с меткой "XML".
Установка визуализатора уведомлений. Это бесплатное приложение Для Windows помогает создавать интерактивные уведомления о приложениях, предоставляя мгновенное визуальное представление всплывающего уведомления при его редактировании, аналогичное представлению редактора и конструктора XAML Visual Studio. Дополнительные сведения см. в разделе "Визуализатор уведомлений" или "Визуализатор уведомлений" из Магазина.
В этой статье рассматривается только создание содержимого уведомления приложения. Сведения о отправке уведомления после создания полезных данных XML см. в статье "Отправка уведомления о локальном приложении".
Структура уведомлений приложения
Некоторые важные, высокоуровневые компоненты полезных данных XML уведомления приложения включают:
toast: атрибут запуска этого элемента определяет, какие аргументы будут переданы в приложение, когда пользователь щелкает всплывающее уведомление, что позволяет получить глубокую ссылку на правильное содержимое, отображаемое всплывающей кнопкой. Дополнительные сведения см. в статье "Отправка уведомления о локальном приложении".
визуальный элемент: этот элемент представляет визуальную часть всплывающего элемента, включая универсальную привязку, содержащую текст и изображения.
действия. Этот элемент представляет интерактивную часть всплывающего элемента, включая входные и действия.
audio: этот элемент указывает звук, воспроизводимый при отображении всплывающего уведомления пользователю.
Ниже приведено визуальное представление содержимого уведомления приложения:
Область атрибуции
Область атрибуции находится в верхней части уведомления приложения. Начиная с Windows 11 в этой области отображаются имя и значок приложения. Область атрибуции также включает кнопку закрытия, которая позволяет пользователю быстро закрыть уведомление и многоточие меню, которое позволяет пользователю быстро отключить уведомления для приложения или перейти на страницу параметров Windows для уведомлений вашего приложения. Область атрибуции настраивается оболочкой и не может быть переопределена в полезных данных toast XML, хотя приложение может добавлять элементы в контекстное меню области атрибуции. Дополнительные сведения см. в разделе "Действия контекстного меню".
Визуальный элемент
Каждое уведомление приложения должно указывать визуальный элемент, в котором необходимо предоставить универсальную привязку всплывающего уведомления, которая может содержать текст и изображения. Эти элементы будут отображаться на различных устройствах Windows, включая настольные компьютеры, телефоны, планшеты и Xbox.
Все атрибуты, поддерживаемые в визуальном разделе и его дочерних элементах, см. в схеме уведомлений приложения.
Текстовые элементы
Каждое уведомление приложения должно содержать по крайней мере один текстовый элемент и может содержать два дополнительных текстовых элемента, все тип 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");
var builder = new ToastContentBuilder()
.AddArgument("meetingId", 9813)
.AddText("Adaptive Tiles Meeting", hintMaxLines: 1)
.AddText("Conf Room 2001 / Building 135")
.AddText("10:00 AM - 10:30 AM");
var builder = new AppNotificationBuilder()
.AddText("Featured image of the day.")
.SetInlineImage(new Uri("ms-appx:///Images/InlineImage.png"));
AppNotificationManager.Default.Show(builder.BuildNotification());
var builder = new ToastContentBuilder()
.AddText("Featured image of the day.")
.AddInlineImage(new Uri("ms-appx:///Images/InlineImage.png"));
<toast>
<visual>
<binding template='ToastGeneric'>
<text>Featured image of the day.</text>
<image src='ms-appx:///Images/InlineImage.png'/>
</binding>
</visual>
</toast>
Переопределение логотипа приложения
Указание значения размещения 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"));
var builder = new ToastContentBuilder()
.AddText("Featured image of the day.")
.AddAppLogoOverride(new Uri("ms-appx:///Images/AppLogo.png"));
<toast>
<visual>
<binding template='ToastGeneric'>
<text>Featured image of the day.</text>
<image placement='appLogoOverride' src='ms-appx:///Images/AppLogo.png'/>
</binding>
</visual>
</toast>
Обрезка подсказки
Рекомендации по стилю Майкрософт рекомендуют представлять изображения профилей с циклическим изображением, чтобы обеспечить согласованное представление людей в приложениях и оболочке. Задайте свойству 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);
var builder = new ToastContentBuilder()
.AddText("Matt sent you a friend request")
.AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
.AddAppLogoOverride(new Uri("ms-appx:///Images/Profile.png"), ToastGenericAppLogoCrop.Circle);
<toast>
<visual>
<binding template='ToastGeneric'>
<text>Matt sent you a friend request</text>
<text>Hey, wanna dress up as wizards and ride around on hoverboards?</text>
<image placement='appLogoOverride' src='ms-appx:///Images/Profile.png' hint-crop='circle'/>
</binding>
</visual>
</toast>
Изображение героя
Новое в юбилейном обновлении: уведомления о приложениях могут отображать изображение героя, которое является избранным 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"));
new ToastContentBuilder()
.AddText("Marry Anne")
.AddText("Check out where we camped last night!")
.AddHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));
<toast>
<visual>
<binding template='ToastGeneric'>
<text>Mary Anne</text>
<text>Check out where we camped last night!</text>
<image placement='hero' src='ms-appx:///Images/HeroImage.png'/>
</binding>
</visual>
</toast>
Ограничения размера изображения
Изображения, используемые в всплывающем уведомлении, можно получить из...
http://
ms-appx:///
ms-appdata:///
Для удаленных веб-образов http и https существуют ограничения на размер файла каждого отдельного образа. В обновлении Fall Creators Update (16299) мы увеличили ограничение на 3 МБ для обычных подключений и 1 МБ на лимитных подключениях. До этого изображения всегда были ограничены 200 КБ.
Обычное подключение
Лимитное подключение
До падения Creators Update
3 МБ
1 МБ
200 КБ
Если изображение превышает размер файла или не удается скачать или выпустить время ожидания, изображение будет удалено, а остальная часть уведомления будет отображаться.
Текст атрибуции
Новое в юбилейном обновлении: если вам нужно ссылаться на источник содержимого, можно использовать текст атрибуции. Этот текст всегда отображается под любыми текстовыми элементами, но выше встроенных изображений. Текст использует немного меньший размер, чем стандартные текстовые элементы, чтобы отличаться от обычных текстовых элементов.
В более старых версиях 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"));
new ToastContentBuilder()
.AddText("Marry Anne")
.AddText("Check out where we camped last night!")
.AddAttributionText("Via SMS");
.AddHeroImage(new Uri("ms-appx:///Images/HeroImage.png"));
<toast>
<visual>
<binding template="ToastGeneric">
<image src="ms-appx:///Images/HeroImage.png"/>
<text>Mary Anne</text>
<text>Check out where we camped last night!</text>
<text placement="attribution">Via SMS</text>
</binding>
</visual>
</toast>
Настраиваемая метка времени
Новое в 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));
var builder = new ToastContentBuilder()
.AddText("Matt sent you a friend request")
.AddText("Hey, wanna dress up as wizards and ride around on hoverboards?")
.AddCustomTimeStamp(new DateTime(2017, 04, 15, 19, 45, 00, DateTimeKind.Utc));
<toast displayTimestamp='2017-04-15T12:45:00-07:00'>
<visual>
<binding template='ToastGeneric'>
<text>Matt sent you a friend request</text>
<text>Hey, wanna dress up as wizards and ride around on hoverboards?</text>
</binding>
</visual>
</toast>
Индикатор выполнения
Новое в Creators Update: вы можете предоставить индикатор хода выполнения в уведомлении приложения, чтобы оставить пользователя в курсе хода выполнения таких операций, как скачивание.
Дополнительные сведения об использовании индикатора хода выполнения см. в разделе "Всплывающий индикатор выполнения".
Заголовки
Новое в Creators Update: вы можете группировать уведомления в заголовках в Центре уведомлений. Например, можно группировать сообщения из группового чата под заголовком или уведомлениями группы о общей теме под заголовком или более.
Дополнительные сведения об использовании заголовков см. в статье "Toast" (Заголовки Toast).
Адаптивное содержимое
Новое в юбилейном обновлении: помимо содержимого, указанного выше, можно также отобразить дополнительное адаптивное содержимое, которое отображается при развертывании всплывающего уведомления.
Это дополнительное содержимое указывается с помощью адаптивной версии, о которой можно узнать больше, прочитав документацию по адаптивным плиткам.
Обратите внимание, что любое адаптивное содержимое должно содержаться в адаптивной группе. В противном случае он не будет отображаться с помощью адаптивной функции.
Столбцы и текстовые элементы
Ниже приведен пример использования столбцов и некоторых расширенных адаптивных текстовых элементов. Так как текстовые элементы находятся в AdaptiveGroup, они поддерживают все богатые свойства адаптивного стиля.
// The Microsoft.Windows.AppNotifications.Builder syntax does not currently support adaptive text elements.
new ToastContentBuilder()
...
.AddVisualChild(new AdaptiveGroup()
{
Children =
{
new AdaptiveSubgroup()
{
Children =
{
new AdaptiveText()
{
Text = "52 attendees",
HintStyle = AdaptiveTextStyle.Base
},
new AdaptiveText()
{
Text = "23 minute drive",
HintStyle = AdaptiveTextStyle.CaptionSubtle
}
}
},
new AdaptiveSubgroup()
{
Children =
{
new AdaptiveText()
{
Text = "1 Microsoft Way",
HintStyle = AdaptiveTextStyle.CaptionSubtle,
HintAlign = AdaptiveTextAlign.Right
},
new AdaptiveText()
{
Text = "Bellevue, WA 98008",
HintStyle = AdaptiveTextStyle.CaptionSubtle,
HintAlign = AdaptiveTextAlign.Right
}
}
}
}
});
Кнопки делают всплывающие интерактивные, позволяя пользователю выполнять быстрые действия в уведомлении приложения без прерывания текущего рабочего процесса. Например, пользователи могут отвечать на сообщение непосредственно из всплывающего уведомления или удалять электронную почту, даже не открывая приложение электронной почты. Кнопки отображаются в развернутой части уведомления.
Кнопки могут активировать приложение следующим образом:
Приложение активируется на переднем плане с аргументом, который можно использовать для перехода к определенной странице или контексту.
Другое приложение активируется с помощью запуска протокола.
Фоновая активация поддерживается явно для приложений UWP. Для приложений пакета SDK для приложений windows приложение всегда запускается на переднем плане. Приложение может вызвать AppInstance.GetActivatedEventArgs , чтобы определить, была ли активация запущена уведомлением и определять из переданных аргументов, следует ли полностью запустить приложение переднего плана или просто обработать уведомление и выйти.
Системные действия, такие как снос или закрытие уведомления, поддерживаются как для приложений UWP, так и для пакета SDK для приложений Windows. API AppNotificationBuilder не поддерживают этот сценарий, но приложения пакета SDK для windows могут реализовать этот сценарий с помощью API Microsoft.Windows.AppNotifications.Builder или необработанного XML.
Примечание
Вы можете использовать только до 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");
var builder = new ToastContentBuilder()
.AddText("New product in stock!")
.AddButton(new ToastButton()
.SetContent("See more details")
.AddArgument("action", "viewDetails"))
.AddButton(new ToastButton()
.SetContent("Remind me later")
.AddArgument("action", "remindLater"));
<toast>
<visual>
<binding template='ToastGeneric'>
<text>New product in stock!</text>
</binding>
</visual>
<actions>
<action content='See more details' arguments='action=viewDetails;contentId=351'/>
<action content='Remind me later' arguments='action=remindLater;contentId=351'/>
</actions>
</toast>
Кнопки со значками
Вы можете добавить значки в кнопки. Эти значки являются белыми прозрачными 16 x 16 пикселей при масштабировании на 100 % и не должны включать в себя заполнение. Если вы решили предоставить значки на всплывающем уведомлении, необходимо предоставить значки для всех кнопок в уведомлении, так как он преобразует стиль кнопок в кнопки значка.
Новые возможности в Обновлении Windows 11. Вы можете добавить подсказки к значкам со свойством 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);
// The Community Toolkit builder syntax does not currently support icon tooltips.
Новые возможности в Обновлении Windows 11. Вы можете добавить красные или зеленые цвета к кнопкам, добавив атрибут useButtonStyle в элемент toast XML и атрибут hint-buttonStyle в xml-элемент действия, как показано ниже.
Новое в юбилейном обновлении: вы можете добавить дополнительные действия контекстного меню в существующее контекстное меню, которое отображается, когда пользователь щелкает всплывающее уведомление или выбирает значок контекстного меню.
Примечание
На более старых устройствах эти дополнительные действия контекстного меню будут просто отображаться как обычные кнопки в уведомлении.
Дополнительные действия контекстного меню, которые вы добавили (например, "Отключить групповой чат в течение 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());
Синтаксис построителя средств сообщества Windows в настоящее время не поддерживает действия контекстного меню, поэтому рекомендуется использовать синтаксис инициализатора.
ToastContent content = new ToastContent()
{
...
Actions = new ToastActionsCustom()
{
ContextMenuItems =
{
new ToastContextMenuItem("Mute group chat for 1 hour", "action=muteId")
}
}
};
<toast>
<visual>
<binding template='ToastGeneric'>
<text>Camping this weekend?</text>
<image placement='appLogoOverride' src='ms-appx:///images/Reply.png' hint-crop='circle'/>
</binding>
</visual>
<actions>
<action content='Mute group chat for 1 hour' arguments='action=mute' placement='contextMenu'/>
</actions>
</toast>
Примечание
Дополнительные элементы контекстного меню способствуют общему ограничению 5 кнопок на всплывающем элементе.
Активация дополнительных элементов контекстного меню обрабатывается идентичным кнопкам всплывающего уведомления.
Входные данные
Входные данные указываются в области действий уведомления приложения, что означает, что они видны только при развертывании уведомления.
Текстовое поле быстрого ответа
Чтобы включить текстовое поле быстрого ответа (например, в приложении для обмена сообщениями) добавьте ввод текста и кнопку и наведите ссылку на идентификатор поля ввода текста, чтобы кнопка отображалась рядом с полем ввода. Необязательный значок для кнопки, если он указан, должен быть изображением 32x32 пикселей без заполнения, белые пиксели, равные прозрачным и 100 % масштабу.
var builder = new AppNotificationBuilder()
.AddTextBox("textBox", "Type a reply", "Reply")
.AddButton(AppNotificationButton("Send")
.AddArguments("action", "Send")
.SetInputId("textBox"))
.BuildNotification();
var builder = new ToastContentBuilder()
.AddInputTextBox("tbReply", "Type a reply")
.AddButton(new ToastButton()
.SetContent("Reply")
.SetTextBoxId("tbReply") // To place button next to text box, reference text box's id
.SetImageUri(new Uri("Assets/Reply.png", UriKind.Relative))
.AddArgument("action", "reply"));
<toast launch="app-defined-string">
<visual>
<binding template="ToastGeneric">
<image placement="appLogoOverride" hint-crop="circle" src="https://picsum.photos/48?image=883"/>
<text>Andrew Bares</text>
<text>Shall we meet up at 8?</text>
</binding>
</visual>
<actions>
<input id="textBox" type="text" placeHolderContent="Type a reply"/>
<action
content="Send"
arguments="action=reply&convId=9318"
hint-inputId="textBox"
imageUri="Assets/Reply.png"/>
</actions>
</toast>
Входные данные с панелью кнопок
Кроме того, можно использовать один (или несколько) входных данных с обычными кнопками, отображаемыми под входными данными.
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());
var builder = new ToastContentBuilder()
.AddText("4th coffee?")
.AddText("When do you plan to come in tomorrow?")
.AddToastInput(new ToastSelectionBox("time")
{
DefaultSelectionBoxItemId = "lunch",
Items =
{
new ToastSelectionBoxItem("breakfast", "Breakfast"),
new ToastSelectionBoxItem("lunch", "Lunch"),
new ToastSelectionBoxItem("dinner", "Dinner")
}
})
.AddButton(new ToastButton()
.SetContent("Reply")
.AddArgument("action", "reply")
.AddArgument("threadId", "9218"))
.AddButton(new ToastButton()
.SetContent("Call restaurant")
.AddArgument("action", "videoCall")
.AddArgument("threadId", "9218"));
<toast>
<visual>
<binding template='ToastGeneric'>
<text>4th coffee?</text>
<text>When do you plan to come in tomorrow?</text>
</binding>
</visual>
<actions>
<input id='time' type='selection' title='Select an item:' defaultInput='lunch'>
<selection id='breakfast' content='Breakfast'/><selection id='dinner' content='Dinner'/>
<selection id='lunch' content='Lunch'/>
</input>
<action content='Reply' arguments='action=reply;threadId=9218' placement='contextMenu'/>
<action content='Call Restaurant' arguments='action=videocall;threadId=9218' placement='contextMenu'/>
</actions>
</toast>
Отклонить или закрыть
С помощью меню выбора и двух кнопок мы можем создать уведомление о напоминании, которое использует системный отказ и закрытие действий. Убедитесь, что в сценарии задано значение "Напоминание", чтобы уведомление выглядело как напоминание.
Мы связаем кнопку "Отсохать" к входным данным меню выбора с помощью свойства 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.
new ToastContentBuilder()
.SetToastScenario(ToastScenario.Reminder)
...
.AddToastInput(new ToastSelectionBox("snoozeTime")
{
DefaultSelectionBoxItemId = "15",
Items =
{
new ToastSelectionBoxItem("5", "5 minutes"),
new ToastSelectionBoxItem("15", "15 minutes"),
new ToastSelectionBoxItem("60", "1 hour"),
new ToastSelectionBoxItem("240", "4 hours"),
new ToastSelectionBoxItem("1440", "1 day")
}
})
.AddButton(new ToastButtonSnooze() { SelectionBoxId = "snoozeTime" })
.AddButton(new ToastButtonDismiss());
Чтобы использовать систему отсохнуть и закрыть действия, выполните следующие действия:
Указание toastButtonSnooze или ToastButtonDismiss
При необходимости укажите настраиваемую строку содержимого:
Если вы не предоставляете строку, мы автоматически будем использовать локализованные строки для "Snooze" и "Закрыть".
При необходимости укажите SelectionBoxId:
Если вы не хотите, чтобы пользователь выбирал интервал отложения и вместо этого просто хотите, чтобы уведомление отложилось только один раз для системного интервала времени (согласованного в ОС), то не создавайте входные <данные> вообще.
Если требуется предоставить выбор интервала отсовки: — укажите SelectionBoxId в действии отсоединения . Соответствует идентификатору входных данных с параметром SelectionBoxId действия snooze . Укажите значение ToastSelectionBoxItem, чтобы быть ненегативнымInteger, который представляет интервал отложения в минутах.
Аудио
Пользовательский звук всегда поддерживается на мобильных устройствах и поддерживается в классической версии 1511 (сборка 10586) или более поздней версии. Настраиваемый звук можно ссылаться по следующим путям:
var builder = new AppNotificationBuilder()
.AddText("Notification text.")
.SetAudioEvent(AppNotificationSoundEvent.Alarm, AppNotificationAudioLooping.Loop);
var builder = new ToastContentBuilder()
.AddText("Notification text")
.AddAudio(new Uri("ms-winsoundevent:Notification.Looping.Alarm"));
Чтобы создать важные уведомления, оповещения, напоминания и входящие уведомления о вызовах, вы просто используете обычное уведомление приложения со значением сценария, назначенным ему. Сценарий настраивает несколько действий, чтобы создать согласованный и унифицированный интерфейс пользователя. Существует четыре возможных значения сценария :
Напоминание
Тревога
ВходящийCall
Срочный
Напоминания
В сценарии напоминания уведомление будет оставаться на экране, пока пользователь не уволит его или не примет меры. В Windows Mobile уведомление приложения также будет отображаться предварительно развернутым. Будет воспроизводиться звук напоминания. Необходимо указать по крайней мере одну кнопку в уведомлении приложения. В противном случае уведомление будет рассматриваться как обычное уведомление.
Оповещения ведут себя так же, как напоминания, за исключением предупреждений, будет дополнительно цикличен звук с звуком сигнализации по умолчанию. Необходимо указать по крайней мере одну кнопку в уведомлении приложения. В противном случае уведомление будет рассматриваться как обычное уведомление.
Уведомления о входящих звонках отображаются предварительно развернуты в специальном формате вызова и остаются на экране пользователя до закрытия. Звук ringtone будет циклироваться по умолчанию. На устройствах Windows Mobile они отображаются на полноэкранном экране.
Требуется: для использования важных уведомлений необходимо запустить сборку предварительной версии Windows 22546 или более поздней версии.
Важные уведомления позволяют пользователям иметь больше контроля над тем, что 1-ая сторона и сторонние приложения могут отправлять им уведомления о приложениях с высоким приоритетом (срочные или важные), которые могут преодолеть помощь фокуса (не беспокоить). Это можно изменить в параметрах уведомлений.
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);
}
// The builder syntax does not support important notifications yet.
Чтобы узнать, как обрабатывать активации приложений (пользователь, щелкнув всплывающую или кнопку на всплывающем элементе), см . статью "Отправить локальный всплывающий элемент".
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Windows developer
Windows developer — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Some Power Automate button flows allow for user input and runs a predefined series of actions. This type of flow button provides the input that is necessary to run the predefined actions in the flow. It shows users how they can create a flow button that runs different logic based on the provided inputs.