我正在敲打这个墙上的头.我试图覆盖一个演示电子应用程序的名称,为其提供自定义名称,而不仅仅是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
}
Run Code Online (Sandbox Code Playgroud)
我在创建窗口后调用此模块:
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()
})
Run Code Online (Sandbox Code Playgroud)
当我这样做时,第二个菜单集得到它的自定义名称,test test但主菜单名称仍然是Electron:
我一直在将代码与我创建的其他应用程序进行比较,我可以覆盖默认名称,而我无法发现在这种情况下保持覆盖的工作原理.
有任何想法吗?
Har*_*ria 27
在开发环境中运行应用程序时使用;
./node_modules/.bin/electron main.js
Run Code Online (Sandbox Code Playgroud)
要么
electron main.js
Run Code Online (Sandbox Code Playgroud)
您实际上正在运行一个预先构建的 electron可执行文件来运行您指定的文件.因此,在这种情况下,操作系统将显示构建和打包应用程序的名称.
如果您想更改它,您需要打包它.即构建自己的可分发包.要做到这一点,有一个很棒的包electron-builder
所以安装它;
npm install --save-dev electron-builder
Run Code Online (Sandbox Code Playgroud)
然后构建包;
./node_modules/.bin/build -m
Run Code Online (Sandbox Code Playgroud)
不要忘了设置
productName在package.json.例如,它将在macOS的菜单中显示.
-m适用于macOS.
你会在/dist目录中看到包.但是,如果您有自定义应用程序格式,则可能无法构建,因此请参阅README或wiki以获取有关应用程序结构的详细信息.
在将近 2 年没有使用 Electron 之后,我才重新开始使用它。据我所知,除非打包应用程序,否则无法更改应用程序名称。试试这个电子包装器:https : //github.com/electron-userland/electron-packager。
| 归档时间: |
|
| 查看次数: |
4923 次 |
| 最近记录: |