愚蠢的问题,但我现在一直在努力尝试更改 Electron 窗口的名称,所以希望这里有人可以帮助我。
我正在尝试将其从“Electron”更改为其他任何名称。我可以将所有其他标题/名称更改为我想要的,但无论我尝试什么,它总是显示“Electron”... :(
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title> <!-- Window name isn't this -->
</head>
<body>
<h1>hi</h1>
</body>
</html>
// main.js
const { app, BrowserWindow } = require('electron')
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
},
title: 'Foo' // Window name isn't this
})
app.setName('Bar') // Window name isn't this
win.setTitle('ReeeeeBar') // Window name isn't this
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
// package.json
{
"name": "foobar-electron-app", // Window name isn't this
"main": "main.js",
"dependencies": {
"electron": "^9.1.2"
}
}
实际上,您可以更改该特定名称。但它很hacky并且没有任何意义:)。
对于 MacOSX,转到
node_modules/electron/dist/Electron.app/Contents/Info.plist
并更改 CFBundleName
的值。
对于打包应用程序,电子/构建器将查看
productName
或 name
中的 package.json
字段 - 无需黑客攻击。
我正在使用 Angular/Electron,这对我有用:
popOut<C>(componentClass: Type<C>, viewContainerRef: ViewContainerRef, options: PopOutOptions) {
const componentRef = viewContainerRef.createComponent(componentClass);
const dimensions = this.getDimensions<C>(componentRef, options);
const { frameName, windowTitle } = options;
this.popOutRef = window.open(
"",
frameName ?? "",
`width=${dimensions.width},
height=${dimensions.height},
left=${dimensions.left},
top=${dimensions.top},
location=0`
);
if (!this.popOutRef) return;
this.renderer2.appendChild(this.popOutRef.document.body, componentRef.location.nativeElement);
this.popOutRef.document.title = windowTitle ?? "";
}