Как предотвратить запуск приложения UWP при нажатии на тост windows - PullRequest
0 голосов
/ 03 августа 2020

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

Раньше у меня сложилось впечатление, что если мы укажем параметр Launch в тосте, то только оно должно запускать приложение, но похоже, что Launch не имеет значения. Он просто запускает приложение по щелчку тела тоста.

Я хочу предотвратить запуск приложения по щелчку тоста.

Я пробовал следующий вариант

   protected override void OnActivated(IActivatedEventArgs args)
    {
        if( args is ToastNotificationActivatedEventArgs)
        {
            if(args.Kind == ActivationKind.ToastNotification)
            {
                Application.Current.Exit();
            }
        }
    }

но это запустит приложение, а затем закроет его. Появится экран spla sh, и пользователь увидит внезапное закрытие приложения. Более того, оно закроет исходное рабочее приложение, если оно уже было запущено, что мне не нужно.

1 Ответ

4 голосов
/ 03 августа 2020

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

var content = new ToastContent
{
    Launch = "...",
    ActivationType = ToastActivationType.Background,
    Visual = new ToastVisual()
    {
        ...
    }
};
var notifier = ToastNotificationManager.CreateToastNotifier();
var notification = new ToastNotification(content.GetXml());
notifier.Show(notification);

После того, как для ActivationType установлено значение ToastActivationType.Background, приложение вызовет зарегистрированную фоновую задачу для обработки соответствующего содержимого. запуска приложения переднего плана.

Для получения подробной информации о фоновых уведомлениях вы можете обратиться к этим документам:

Чтобы использовать тип для представления ToastContent, вам необходимо установить Microsoft.Toolkit.Uwp.Notifications пакет nuget

...