Windows:Electron通知无法显示应用程序图标,但在其他地方却可以。

4
应用程序的标志在其他所有地方都正确显示,但在通知部分显示为空白标志。

enter image description here

我知道你可以通过传递一个icon属性来添加自定义图像以用于通知:

           new Notification({
              title: 'Test Notification',
              body: 'This is a test notification',
              icon: path.join(__dirname, 'icon.ico'),
            });

但这不是我想要更改的标志。
构建应用程序时,还在其他地方显示正确的标志:

enter image description here

我按照这里的建议,在创建BrowserWindow时添加了一个icon属性。

  const win = splashWindow = new BrowserWindow({
    width: 320,
    height: 320,
    // more 
    icon: path.resolve(__dirname, 'icon.ico'),
  });

添加一个

win.setIcon(path.resolve(__dirname, 'icon.ico');

这也不起作用。

这段代码全部在 main.js 中。

我一直在查看 App 类的文档,发现有一个 getFileIcon,但它似乎与此无关。

可能相关?

我已经通过 setAppUserModelId 修改了应用程序名称为“Awesome App”,代码如下:

ipcMain.on('app-ready', () => {
  if (process.platform === 'win32') {
    // somehow also change logo here? can't find it in the docs
    app.setAppUserModelId('Awesome app');
  }
2个回答

3

new Notification之前调用app.setAppUserModelId('xxxx')就可以了。

xxxx是你的应用包 ID。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community
在启动任何BrowserWindow之前,我都会这样做。 - Fer Toasted

0
    i have used below changes.
inside package.json --> add below. make sure to add  "appId": "YOUR APP NAME"
    "win": {
      "target": "nsis",
      "icon": "logo256.ico",
      "appId": "YOUR APP NAME"
    }


also make sure to add 
app.on("ready", ev => {
  if (process.platform == 'win32') {
    app.setAppUserModelId('YOUR APP NAME');
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接