【问题标题】:How to set up application menu in electron?如何在电子中设置应用程序菜单?
【发布时间】:2016-03-21 15:16:36
【问题描述】:

如果我启动 electron-quick-start 应用程序,我会得到一个完整的 OSX 菜单:

然后我将这段代码(大部分是从文档中复制的)添加到我的 main.js 中:

const Menu = require('menu');                                                                                                                                                                            
const MenuItem = require('menu-item');
var mainmenu = new Menu();
mainmenu.append(new MenuItem({ label: 'MenuItem1', click: function() { console.log('item 1 clicked'); } }));
Menu.setApplicationMenu(mainmenu);

我还尝试使用来自electron menu docs 的菜单模板代码,结果完全相同,令人失望:

我还尝试将上面的代码添加到 index.html,从字面上复制 Menu 文档中的代码。一样的。

知道有什么问题吗?

【问题讨论】:

  • 您想更改“电子”菜单吗?这是一个打包的应用程序吗?如果不是,你试过setName方法app.setName('YOURAPPNAME')吗?
  • @Philip 我做到了。它适用于后续的 app.getName() 调用,但菜单将始终有 Electron

标签: menu electron


【解决方案1】:

electron-quick-start 示例中使用的electron-prebuilt 有它自己的应用名称(电子)。

要更改这一点,您需要重新构建/打包您的应用,它将使用您的 package.json 中的“名称”或“产品名称”。

还有设置/获取应用名称的方法,但您必须打包应用才能在主菜单上看到更改:

const electron = require('electron');
const app = electron.app;

app.setName('APPNAME');

【讨论】:

  • 使用预构建包时,setName 变通方法不起作用。
  • 如果您使用的是electron-prebuilt 包,则无法更改appName。您需要重建/打包您的应用程序,它将使用您的package.json 中的name/productName 值。我建议你在这里尝试electron-packagergithub.com/electron-userland/electron-packager
猜你喜欢
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
相关资源
最近更新 更多