如何为单个Electron应用创建多个MacOS Dock图标?
Electron macOS 多模式独立 Dock 图标实现需求
我的Electron应用包含A、B两种模式,切换模式时会新建BrowserWindow并修改Dock图标。需要实现以下功能:
- 在macOS下,用户右键点击A模式的Dock图标选择“保留在程序坞”时,生成独立的Dock图标,后续通过该图标启动应用直接进入A模式
- B模式需实现同样的独立Dock图标与启动关联逻辑
注:A、B模式基于同一React应用,A是精简版,用户需在应用UI内切换模式,因此不想将A打包为独立应用。
已尝试的代码
let windowA; let windowB; const bootInModeA = () => { windowA = new BrowserWindow({ ..., icon: 'iconA.png', }) // Change dock icon. const realmImage = nativeImage.createFromPath(getAssetPath('iconA.png')); app.dock.setIcon(realmImage); }; const bootInModeB = () => { // Vice versa. }; const bootApp = () => { // Create a throwaway window so the main process remains open. const throwawayWindow = new BrowserWindow({ show: false, }); if (isModeA) { windowB.close() bootInModeA(); } else { windowA.close() bootInModeB(); } throwawayWindow.close(); }
当前问题
- 右键“保留在程序坞”会固定同一个图标,无法区分用户想固定的是A还是B模式
- 自定义“Keep in Dock” MenuItem可通过
electron-store存储上次模式,但无法生成不同的Dock图标
寻求可行的解决方案。
内容的提问来源于stack exchange,提问作者Gustaf Broman
相关产品推荐
相关产品推荐

