当我的 Electron 应用程序在 macOS 上启动时,如何避免显示 Dock 图标?

cal*_*lum 5 electron

创建 时new BrowserWindow,您可以设置skipTaskbar: true防止它出现在 Windows 任务栏中。但这不适用于 macOS 上的 Dock。

对于 macOS,我们有app.dock.hide(),但并不完全相同:它仅您的 Electron 应用程序启动隐藏图标。即使您app.dock.hide()在主进程中首先调用,Dock 图标也会短暂出现然后消失,这是我想避免的。(我希望我的应用程序只出现在菜单栏中,类似于 Dropbox 等应用程序。)

经过更多的挖掘,我在电子构建器项目上发现了这个问题评论,这表明可以通过在捆绑的应用程序分发中包含"LSUIElement": 1Info.plist文件中进行设置来解决该问题。苹果的文档LSUIElement说这个设置确实会使应用程序作为“代理应用程序”运行,这似乎是我想要的。

有什么方法可以Info.plist在开发中提供此设置,例如electron从源代码运行我的应用程序时作为CLI的启动参数?还是真的只能通过捆绑完整版本并添加Info.plist文件来实现?

Cha*_*ong 1

build.mac.extendInfo您可以使用中 的属性package.json将其他设置添加到 中Info.plisthttps://www. Electron.build/configuration/mac

LSUIElement下面是添加到 Mac 的构建设置的示例package.json

"build": {
    "mac": {
        // ... other settings
        "extendInfo": {
            "LSUIElement": true
        }
    }
    // ... other settings
}
Run Code Online (Sandbox Code Playgroud)