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


Всплывающее уведомление с ожидающей активацией обновления

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

уведомление об ожидающем обновлении

Это важно

Требуется обновление для настольных компьютеров Windows 10 Fall Creators и версии 2.0.0 библиотеки уведомлений. Для просмотра ожидающих обновлений необходимо запустить настольную сборку 16299 или более поздней версии. Чтобы назначить PendingUpdate на кнопках, необходимо использовать библиотеку nuGet с помощью версии 2.0.0 или более поздней версии. Обновление в ожидании поддерживается только на компьютерах и будет игнорироваться на других устройствах.

Предпосылки

В этой статье предполагается наличие практического знания о...

Обзор

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

  1. На кнопках активации тоста укажите AfterActivationBehavior в значении PendingUpdate

  2. Назначьте тега (и при необходимости группу) при отправке всплывающего уведомления

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

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

Назначение ожидающего обновления

На кнопках фоновой активации установите для AfterActivationBehavior значение PendingUpdate. Обратите внимание, что это работает только для кнопок с типом активации на фоне .

new ToastContentBuilder()

    .AddText("Would you like to order lunch today?")

    .AddButton(new ToastButton("Yes", "action=orderLunch")
    {
        ActivationType = ToastActivationType.Background,

        ActivationOptions = new ToastActivationOptions()
        {
            AfterActivationBehavior = ToastAfterActivationBehavior.PendingUpdate
        }
    });

Использование тега в уведомлении

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

// Create the notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And show it
ToastNotificationManager.CreateToastNotifier().Show(notif);

Замените всплывающее уведомление новым содержимым

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

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

// Generate new content
ToastContent content = new ToastContent()
{
    ...

    // We disable audio on all subsequent toasts since they appear right after the user
    // clicked something, so the user's attention is already captured
    Audio = new ToastAudio() { Silent = true }
};

// Create the new notification
var notif = new ToastNotification(content.GetXml())
{
    Tag = "lunch"
};

// And replace the old one with this one
ToastNotificationManager.CreateToastNotifier().Show(notif);