Windows 应用商店应用 - 本地 Toast 通知

本文关键字:应用 Toast 通知 本地 Windows | 更新日期: 2023-09-27 18:30:51

这似乎是一个奇怪的问题,但是有没有办法将本地Toast通知从Windows 8应用商店应用程序发送到机器 - 而不是在屏幕上显示它?我有一个后台任务,需要向 UI 线程发送同步请求。我一直在寻找 8 个小时的大部分时间,试图让不同的方法工作 - 归根结底这对我有用,但我不希望请求文本在我调用它时显示在屏幕上。

我还应该补充一点,Toast 通知将在应用程序中使用,所以我不能简单地全局关闭它,我只需要我指定不显示、隐藏的通知。这可能吗?

理想情况下,我宁愿做一个原始通知,但我无法弄清楚如何做一个本地的原始通知(如果甚至可以在不点击我的 API 的情况下模拟它)。

编辑:根本问题我的后台任务是每 15 分钟在幕后工作一次 - 基本上是向主应用程序发送同步请求。OnPushNotificationReceived,应该捕获这一点并执行我需要的所有数据的完全同步:例如GPS坐标,检查"ToDoItems"是否接近截止日期并需要升级优先级等。其中包括检查本地文件系统上是否有任何文档已标记为完整并需要上传到 Azure 文件存储等。

Windows 应用商店应用 - 本地 Toast 通知

答案可能在 OnPushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs args)

args.Cancel = true

来自 MSDN:https://msdn.microsoft.com/en-us/library/br241295
取消:读/写 获取或设置 Windows 是否应执行其对通知的默认处理。

您收到通知并在您的 OnPushNotificationReceived 侦听器中处理它,将取消设置为 true,瞧!
基本上,您已经处理了通知,因此您可以取消显示通知的默认行为。

编辑内容:原始通知基本上是一个空信封,您可以在其中以任何形式放置任何内容,可以是对象,图像,字典......基本上,您决定要发送的内容,显然应用程序必须知道数据模型才能处理它。

为了轻松创建通知,我向您推荐此Nuget包:https://github.com/WindowsNotifications/NotificationsExtensions/tree/master/Windows%208.1%20RT

有关如何创建 Toast 通知的示例:

var toastNoti = ToastContentFactory.CreateToastText02();
toastNoti.TextHeading.Text = "TEXT IN BOLD";
toastNoti.TextBodyWrap.Text = "TEXT IN NORMAL CASE ";
toastNoti.Launch = "NOTIFICATION ARGUMENTS";    
var doc = new XmlDocument();
doc.LoadXml(toastNoti.ToString());
var endNotification = new ToastNotification(doc);
endNotification.Tag = "1";
ToastNotificationManager.CreateToastNotifier().Show(endNotification);

希望这有帮助。请告诉我们任何结果。