0

我正在使用 C# 和 XAML 在 Windows 10 通用版中进行推送通知。一切正常。当我收到通知并且应用程序正在运行时,我会在通知到来时使用此功能做一些事情。

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

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

4

2 回答 2

2

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

根据您将使用的通知类型,处理方式略有不同,可能的类型有:

  • 使用 Windows 10 自适应模板从 Toast 通知的前台激活
  • 使用 Windows 10 自适应模板从 Toast 通知后台激活
  • 旧版:使用旧版模板从 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
}

您可以按照此快速入门发送和处理每种类型样本的激活。快速入门还使用 NuGet 包让您的生活更轻松。

于 2016-08-01T09:14:28.293 回答
0

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

这是 lynda 的视频教程

于 2018-04-13T09:46:08.900 回答