You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为单个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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:55:04