我想阻止一些通知。我可以在应用程序处于前台时使用以下代码进行操作:
var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
channel.PushNotificationReceived += Channel_PushNotificationReceived;
后来:
private void Channel_PushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs args)
{
if (args?.NotificationType == PushNotificationType.Toast)
{
if (string.IsNullOrWhiteSpace(args.ToastNotification?.Content?.InnerText))
{
args.Cancel = true;
}
}
}
但是我不知道关闭应用程序后该怎么做。我尝试了“通知侦听器”,但只有在通知已经显示时才可以访问。
我的问题是,当应用程序在后台运行时,如何阻止某些通知?
答案 0 :(得分:0)
您可以使用原始推送通知(请参阅docs)。这些是没有关联的UI的特殊通知,但是您可以创建一个background task,每当此类通知到达时就会触发。然后,在此任务中,您可以决定是否要显示通知,在这种情况下,可以直接在代码中创建并显示通知。
答案 1 :(得分:0)
因为我使用的是Azure Notification Hub,所以不能使用Raw Push Notifications。最终,我添加了一个带有设备系列(uwp,android,ios)的标签,并使用语法tag && !uwp
从集线器发送了通知,该语法将无处不在的特定通知发送给了uwp。