0

В настоящее время в моих приложениях я регистрируя onActivated слушателя должна быть выполнена и проверена на моем разделе деятельности, как так:UWP C# приложение с двумя видами onActivated слушателей, доступных - Активация уведомления

 Window.Current.Activated += Current_Activated; 

с методом, следует проверить состояние активации:

private async void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e) 
     { 
if (e.WindowActivationState == CoreWindowActivationState.Deactivated) 
      { 

      } 
      else 
      {}      } 

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

Я регистрации слушателя как такового:

 (Application.Current as App).Activated = new EventHandler<IActivatedEventArgs>(App_Activated); 

и метод, который никогда не вызывается, выглядит так:

private void App_Activated(object sender, IActivatedEventArgs e) 
     {              } 

ли те две конфликтующие друг с другом? есть ли что-то, что я могу сделать, чтобы реализовать активацию уведомления в моем существующем методе?

Я прочитал это и много больше страниц: https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/07/08/quickstart-sending-a-local-toast-notification-and-handling-activations-from-it-windows-10/

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

ответ

1

Вы должны просто переопределить метод OnActivated(IActivatedEventArgs args) в вашем App.xaml.cs и проверить, является ли args.Kind свойство ActivationKind.ToastNotification.

Дополнительная информация об обработке активации приложения UWP here.

+0

Ahhhh. это оно. Я не знал, что мне нужно переопределить его в app.xaml.cs. Я попытался переопределить его в моей главной странице приложения. благодаря – SunnySonic

1

Как сказал Мариан, вам необходимо переопределить метод OnActivated в вашем классе App.xaml.cs. Метод OnActivated вызывается при щелчке вашего тоста и содержит аргументы тоста, так что вы знаете, что щелкнули тосты. Обратите внимание, что вы должны выполнить ту же инициализацию кадра в своей OnActivated, как и ваш OnLaunched, так как если пользователь нажимает на тост, пока ваше приложение закрыто, будет вызван только метод OnActivated - OnLaunched не будет вызываться.

Это Quickstart объясняет, как именно обрабатывать активации тостов, и включает в себя полный образец кода: Quickstart: Sending a local Toast notification

Смежные вопросы