应用程序未处于活动状态时如何处理通知?

时间:2016-07-27 09:39:44

标签: c# xaml windows-10 uwp wns

我正在使用C#和XAML在Windows 10中进行推送通知。一切都很完美。当我收到通知并且应用程序正在运行时,我会使用此功能在通知进入时执行某些操作。

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

但是当应用程序在后台时,我会以徽章的形式收到一个Toast通知。当我点击该应用程序打开它所在的最后一页时。但是,我想要做的是点击徽章时我希望能够在我的代码中调用一个函数。我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您的应用未在前面运行,它将被激活,您可以将代码放入OnActivated事件处理程序中。

根据您将使用的通知类型,处理方式存在细微差别,可能的类型有:

  • 使用Windows 10从Toast通知激活前台 自适应模板
  • 来自Toast通知的后台激活 使用Windows 10自适应模板
  • 遗产:前景激活 来自使用传统模板的Toast通知。

这是您将使用Windows 10 Toast模板进行前台激活的代码(最常用的模板):

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包来让您的生活更轻松。

答案 1 :(得分:0)

您需要在项目中添加Windows运行时组件,以便在应用关闭时处理和处理后台通知。以下是使用Windows运行时组件处理不同类型触发器的quickstart

here is the video tutorial by lynda for the same