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

Electron应用首项菜单名称自定义:替换默认“Electron”

解决Electron应用首项菜单项显示“Electron”而非自定义名称的问题

直接给app.name赋值不生效的核心原因是:Electron中app.name是只读属性,无法通过直接赋值修改。正确的做法是使用官方提供的app.setName()API,且必须在应用就绪后调用该方法。

修改后的完整代码如下:

const { app, Menu } = require('electron');

const isMac = process.platform === 'darwin';

// 必须在应用就绪后执行名称设置与菜单构建
app.whenReady().then(() => {
  // 设置自定义应用名称
  app.setName('Custom App Name');

  const mainMenuTemplate = [
    ...(isMac ? [{
      // 用app.getName()获取已设置的应用名称
      label: app.getName(),
      submenu: [
        { role: 'about' },
        { type: 'separator' },
        { role: 'hide' },
        { role: 'hideOthers' },
        { role: 'unhide' },
        { type: 'separator' },
        { role: 'quit' }
      ]
    }] : []),
    {
      label: 'File',
      submenu: [
        {
          label: 'More information',
          role: 'info'
        },
      ]
    },
    {
      label: 'View',
      submenu: [
        { role: 'reload' },
      ]
    }
  ];

  const menu = Menu.buildFromTemplate(mainMenuTemplate);
  Menu.setApplicationMenu(menu);
});

关键要点:

  • app.setName()是Electron官方支持的修改应用名称的API,能同步更新菜单、关于对话框等系统UI元素,无需修改Info.plist。
  • 必须在app.whenReady()回调内执行设置,因为Electron的应用级API需要等待应用完全初始化就绪后才能正常工作。
  • 菜单模板中用app.getName()获取名称,确保显示的是最新设置的自定义名称。

内容的提问来源于stack exchange,提问作者Antariksh Pratham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:26:03