如何在通用Windows应用程序的后台任务中使用PushNotificationTrigger

时间:2016-07-04 09:34:48

标签: windows-10-universal

我搜索了很多,但我没有得到任何文档或示例可以帮助我在Background Task中使用PushNotificationTrigger,就像我们使用SystemTrigger和TimeTrigger一样。

我想在我的应用关闭时收到Toast Notifications。通知即将发布,但不知道如何在后台处理。 任何在通用Windows应用程序中使用PushNotifications的人都请提供一些样本或文档来处理通知。

This is I am getting in Lifecycle Events 这是我用来注册任务的代码

if(!Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name == "PushBackgroundTask"))
{
   var result = await BackgroundExecutionManager.RequestAccessAsync();
   var builder = new BackgroundTaskBuilder();
   builder.Name = "PushBackgroundTask";
   builder.TaskEntryPoint = typeof(NotificationActionBackgroundTask.NotificationActionBackgroundTask).FullName;
   builder.SetTrigger(new Windows.ApplicationModel.Background.PushNotificationTrigger());
   BackgroundTaskRegistration task = builder.Register();
}

由于

1 个答案:

答案 0 :(得分:1)

我想你在这里可能有点困惑。使用PushNotification时,服务器可以向您的设备推送4种通知:Toast, Tile, Badge and Raw Notification

前三个通知将由通知中心接收并由系统处理。原始通知是一种不涉及UI的推送通知,其内容可以在应用程序的后台任务中使用。

  

我想在我的应用关闭时收到Toast Notifications。

所以不,如果你想在后台任务中使用PushNotificationTrigger处理PushNotifications,你只能处理行通知。您可以参考PushNotificationTrigger class,此类表示一个对象,该对象在应用程序上调用后台工作项以响应原始通知的接收。

  

与其他推送通知不同,原始通知不具有指定的格式。有效负载的内容完全是应用程序定义的。

因此,如果你推送祝酒通知,你不需要在后台任务中处理它,它将由行动中心处理。但您可以在后台任务中处理原始通知并手动烘烤它。

有关如何将PushNotificaitonTriggerRaw notification一起使用的信息,您可以参考Raw notification overview,对于后台任务中的吐司,您可以参考官方{{3} }。

<强>更新

要使用生命周期事件调试项目,您可以查看以下屏幕截图: Notifications sample

在调试时,您的应用生命周期取决于vs工具,但您可以点击此红色圆圈部分来调试应用的生命周期。