0

ElectronNET AutoUpdater 似乎正在向 Windows 发布我没有要求的通知。除了我确实要求的那些,我现在有重复(从我的 QA 人员的角度来看)。

更糟糕的是,默认消息使用内部 AppId 而不是看起来不专业的应用程序的显示名称。

Win11通知面板

原谅删节,但请注意以下几点:

  • Outlook 显示组标题和图标;我似乎无法用 ElectronNET 复制它,它总是显示某种内部计算的名称,而不是我在任何配置中指定的名称。MS Teams 和 Slack 都显示得很好,所以它必须在 Electron 中是可能的。
  • 上午 9.40 的第一条消息是我的,在活动期间加注ElectronNET.API.Electron.AutoUpdater.OnUpdateDownloaded;第二个“准备安装新更新”似乎来自 ElectronNET 本身,潜台词包括 AppID 而不是应用程序的显示名称。

有谁知道如何克服这些限制?如果需要的话,我很高兴分叉 ElectronNET cli 并覆盖一些构建过程,但这些对于整个平台来说似乎是相当明显的需求。

也许我只是错过了文档中的某些内容?

4

1 回答 1

0

回答我自己的问题,因为我已经提取了 ElectronNET 代码并解决了它。

有两个用于检查更新的 API: Electron.AutoUpdater.CheckForUpdatesAsync()
Electron.AutoUpdater.CheckForUpdatesAndNotifyAsync()

在后者中有一个NotificationOptions对象可以发送到纯电子端来设置通知的内容。在 ElectronNET 桥中,API 不接受 options 参数,因此会显示来自 Electron 的默认消息。

此处的解决方法是调用该CheckForUpdatesAsync()方法并制作您自己的通知,您可以将其附加到OnUpdateDownloaded事件中。下面的一个例子:

var timer = new Timer( 60_000 ) { AutoReset = true, Enabled = true };
timer.Elapsed += ( _, _ ) => Electron.AutoUpdater.CheckForUpdatesAsync();

Electron.AutoUpdater.OnUpdateDownloaded += upd =>
    Electron.Notification.Show( 
        new NotificationOptions( 
            "My App",
            "A new version is available. Restart to install."
        )
    );
于 2022-02-15T22:27:06.820 回答