Windows:电子通知不显示应用程序徽标,但在其他任何地方都显示

问题描述 投票:0回答:2

应用程序徽标在其他任何地方都正确显示,但在通知部分显示空徽标

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

在创建

icon
时,我还添加了
BrowserWindow
属性,如建议的 here

  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');
  }
electron electron-builder
2个回答
3
投票

我在

app.setAppUserModelId('xxxx')
之前致电
new Notification
并且有效。

xxxx 是您的捆绑包 ID。

令人困惑的部分是包 id 是什么,所以 bulde id 是 package.json 中的 appId

"build": {
   "appId": "com.windshieldhub.TimeTracker",
   "productName": "WindshieldHUB Time Tracker",
   "win": {
     "target": "nsis",
     "icon": "public/assets/logo-icon.ico",
     "publish": {
     "provider": "github"
  }
},
}

在 setAppUserModelId() 中添加 appId 将从该数组中获取产品名称和图标。


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');
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.