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
相关产品推荐
相关产品推荐

