如何在 ElectronJS 中设置窗口名称/标题?

问题描述 投票:0回答:3

愚蠢的问题,但我现在一直在努力尝试更改 Electron 窗口的名称,所以希望这里有人可以帮助我。

我正在尝试将其从“Electron”更改为其他任何名称。我可以将所有其他标题/名称更改为我想要的,但无论我尝试什么,它总是显示“Electron”... :(

enter image description here

<!-- 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"
  }
}

具体来说,我正在尝试改变这一点: enter image description here

javascript electron electron-builder
3个回答
7
投票

实际上,您可以更改该特定名称。但它很hacky并且没有任何意义:)。

对于 MacOSX,转到

node_modules/electron/dist/Electron.app/Contents/Info.plist
并更改
CFBundleName
的值。

对于打包应用程序,电子/构建器将查看

productName
name
中的
package.json
字段 - 无需黑客攻击。


3
投票

事实证明,您无法在开发过程中更改这一点。

当您构建(使用 electron-builder)时,它会将其更改为

name
中的任何
package.json
字段。


0
投票

我正在使用 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 ?? "";
  }
© www.soinside.com 2019 - 2024. All rights reserved.