Delphi 当应用程序打包到Appx包中时,Toast通知不起作用

Delphi 当应用程序打包到Appx包中时,Toast通知不起作用,delphi,toast,delphi-10.2-tokyo,desktop-bridge,Delphi,Toast,Delphi 10.2 Tokyo,Desktop Bridge,我已经开发了一个Microsoft应用商店应用程序,我想添加Toast通知 该应用程序是使用Delphi10.2.3开发的,我正在使用“桌面桥”技术将其转换为Microsoft应用商店的Appx包。Toast通知工作正常,直到我将应用程序打包到Appx包中(用于存储或侧加载) 从appx和侧加载运行时,Toast通知不起作用,并且“我的应用”未作为通知发件人列在Windows设置中。我想我必须定义一些清单扩展。有一个appxmanifest设置(现在已弃用)为astable=“true”,但我正

我已经开发了一个Microsoft应用商店应用程序,我想添加Toast通知

该应用程序是使用Delphi10.2.3开发的,我正在使用“桌面桥”技术将其转换为Microsoft应用商店的Appx包。Toast通知工作正常,直到我将应用程序打包到Appx包中(用于存储或侧加载)

从appx和侧加载运行时,Toast通知不起作用,并且“我的应用”未作为通知发件人列在Windows设置中。我想我必须定义一些清单扩展。有一个appxmanifest设置(现在已弃用)为astable=“true”,但我正在阅读的是Windows 10不再使用也不再需要的内容


当我运行应用程序可执行文件时,Toast通知工作正常,但当我从Appx软件包安装它时,Toast通知工作正常。如何让Windows 10了解我的应用程序是通知发送者?

不幸的是,使用提供的TNotificationCenter组件(我在包括10.2.3在内的许多版本中进行了测试)它将无法工作

此链接中描述了原因:

有一个简单的修复程序,但您需要修改组件源代码。发布到Windows应用商店时,TNotificationCenter不应为您的应用创建快捷方式,也不应在创建IToastNotifier实例时提供应用程序ID。这将自动为您完成

最后,我编写了自己的库来管理Windows 10通知,因为我需要更详细的场景和自定义XML有效负载,而不是提供什么,但我可以确认,如果按照Microsoft的说明进行操作,它会正常工作

我将我的类与System.Win.Notification(可在source\\rtl\common中找到)进行了比较,以下是一些您可以尝试使其工作的技巧(未经测试):

#1-TNotificationCenterWinRT的构造函数

FToastNotifier := TToastNotificationManager.Statics.CreateToastNotifier(LWSAppID);
应该是

FToastNotifier := TToastNotificationManager.Statics.CreateToastNotifier();
if True then
#2-t通知中心winrt.DoPresentNotification

if CreateShortcut then
应该是

FToastNotifier := TToastNotificationManager.Statics.CreateToastNotifier();
if True then

注意:如果您决定修改源文件,建议首先在项目文件夹中复制该文件,然后进行修改。

成功!我尝试了您建议的提示,现在Toast通知出现了,并且应用程序在我的appx软件包的设置中显示为通知发件人。非常感谢。