无法覆盖mac os electron菜单上的应用程序名称
这次我的头撞到墙上了。我正在尝试覆盖演示electron应用程序的名称,以给它一个自定义名称,而不仅仅是无法覆盖mac os electron菜单上的应用程序名称,electron,Electron,这次我的头撞到墙上了。我正在尝试覆盖演示electron应用程序的名称,以给它一个自定义名称,而不仅仅是electron。我为此创建了一个模块: const {app, Menu} = require('electron') const template = [ { label: 'New Name', submenu:[ { label: 'Test', click
electron
。我为此创建了一个模块:
const {app, Menu} = require('electron')
const template = [
{
label: 'New Name',
submenu:[
{
label: 'Test',
click: (menuItem, browserWindow, event) => {
console.log('menu item clicked')
}
},
{role: 'quit'}
]
},
{
label: 'test test',
submenu:[
{
label: 'Test',
click: (menuItem, browserWindow, event) => {
console.log('menu item clicked')
}
},
{role: 'quit'}
]
}
]
installApplicationMenu = function (){
const menu = Menu.buildFromTemplate(template)
let result = Menu.setApplicationMenu(menu)
}
module.exports = {
installApplicationMenu
}
我在创建窗口后调用此模块:
const {app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')
const {installApplicationMenu} = require('./MenuInstaller')
require('electron-reload')(__dirname,{
electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
})
let win
function createWindow(){
win = new BrowserWindow({
width: 800,
height: 600
})
win.loadURL(
url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
})
)
win.on('closed', () => {
win = null
})
}
app.on('ready', function (){
createWindow()
installApplicationMenu()
})
app.on('activate', () => {
if(win === null) createWindow()
})
当我这样做时,第二个菜单集得到它的自定义名称test
,但主菜单名仍然是Electron
:
我一直在将代码与我创建的另一个应用程序进行比较,在这个应用程序中,我可以覆盖默认名称,但在这种情况下,我无法发现是什么原因使覆盖无法工作
有什么想法吗?在创建浏览器窗口或使用实例方法
win.setTitle(“我的应用程序”)
时,您可以通过向传递的选项添加title
来设置名称。默认值为Electron
()
在将近2年没有使用电子产品之后,我刚刚重新开始使用它。据我所知,除非打包应用程序,否则无法更改应用程序名称。试试像这样的电子包装机: 在开发环境中使用运行应用程序时
./node_modules/.bin/electron main.js
或
实际上,您正在运行一个预构建的electron
可执行文件,该文件运行您指定的文件。因此,在本例中,操作系统将显示应用程序构建和打包时使用的名称
如果您希望更改它,则需要对其进行打包。i、 e.构建自己的可分发包。要做到这一点,有一个很棒的软件包
所以安装它
npm install --save-dev electron-builder
然后构建包
./node_modules/.bin/build -m
不要忘记在package.json
中设置productName
。例如,它将显示在macOS上的菜单中
-m
用于macOS
您将在
/dist
目录中看到包。但是,如果您有自定义应用程序格式,它可能无法生成,因此有关应用程序结构的详细信息,请参阅或。这将设置浏览器窗口的名称
,而不是os x上的应用程序菜单名称
npm install --save-dev electron-builder
./node_modules/.bin/build -m