2016-07-27 4 views
0

Я делаю push-уведомления в Windows 10 Universal с использованием C# и XAML. Все работает отлично. Когда я получаю уведомление и приложение работает Я использую эту функцию, чтобы сделать что-то, когда уведомление приходит.Как обрабатывать уведомление, когда приложение неактивно?

private async void Channel_PushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) 
{ 
    e.Cancel = true; 
    //do something in reaction to the notification 
} 

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

ответ

1

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

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

  • передняя план активации с уведомлением тоста с помощью Windows 10 адаптивного шаблона
  • активации фона из тост-уведомление с использованием адаптивного шаблона Windows 10
  • Наследие: активация переднего плана из сообщения тоста с использованием устаревшего шаблона.

Это код, который вы будете использовать для активации переднего плана с Windows 10 шаблонов тоста (наиболее часто используемых один):

protected override void OnActivated(IActivatedEventArgs args) 
{ 
    // TODO: Initialize root frame just like in OnLaunched 

    // Handle toast activation 
    if (args.Kind == ActivationKind.ToastNotification) 
    { 
     var toastArgs = args as ToastNotificationActivatedEventArgs; 

     // your code 
    } 

    // TODO: Handle other types of activation 
} 

Вы можете следить за этим quickstart for sending and handling activations для образца каждого типа , Быстрое начало также использует пакет NuGet, чтобы сделать вашу жизнь проще.