我正在使用C#和XAML在Windows 10中进行推送通知。一切都很完美。当我收到通知并且应用程序正在运行时,我会使用此功能在通知进入时执行某些操作。
private async void Channel_PushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs e)
{
e.Cancel = true;
//do something in reaction to the notification
}
但是当应用程序在后台时,我会以徽章的形式收到一个Toast通知。当我点击该应用程序打开它所在的最后一页时。但是,我想要做的是点击徽章时我希望能够在我的代码中调用一个函数。我该怎么做?
答案 0 :(得分:1)
如果您的应用未在前面运行,它将被激活,您可以将代码放入OnActivated
事件处理程序中。
根据您将使用的通知类型,处理方式存在细微差别,可能的类型有:
这是您将使用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。