Я работаю над добавлением иконки в системном трее в свое приложение Electron. На ОС Ma c значок работает как положено. Значок отображается в системном трее и может взаимодействовать по назначению. На Windows функциональность иконки в системном трее есть (например, есть место для иконки, я могу щелкнуть правой кнопкой мыши по иконке и правильно взаимодействовать с выпадающим меню), но фактическая иконка отсутствует в место, где оно должно быть.
Вот код для этого:
let tray
let iconPath
let trayIcon
let contextMenu
function createTray(){
iconPath = path.join(__dirname, '../public/img/trayicon.png');
trayIcon = nativeImage.createFromPath(iconPath);
trayIcon = trayIcon.resize({ width: 16, height: 16 });
tray = new Tray(trayIcon);
contextMenu = Menu.buildFromTemplate([
{ label: 'Toggle Chronos', click(){ toggleMainWindow(); } },
{ label: 'Quit', click() { app.quit() } }
]);
tray.setContextMenu(contextMenu);
}
Снимок экрана с пустым значком в системном трее на Windows
Скриншот того, как это выглядит на Ma c OS
Я пытался поменять иконку на .ico, надеясь, что просто Windows не сможет отобразить PNG в системный трей, но это только ломает его на ОС Ma c, не исправляя его на Windows.