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

如何避免在macOS上启动我的Electron应用程序时显示Dock图标?,electron,Electron,创建时,可以设置skipTaskbar:true,以防止它出现在Windows任务栏中。但这不适用于macOS上的Dock 对于macOS,我们有app.dock.hide(),但它并不完全相同:它只在您的电子应用程序启动后隐藏图标。即使您在主进程中首先调用app.dock.hide(),dock图标也会短暂出现然后消失,这是我想要避免的。(我希望我的应用程序只出现在菜单栏中,类似于Dropbox等应用程序。) 在进一步挖掘之后,我在electron builder项目上找到了答案,这表明可以通

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

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

在进一步挖掘之后,我在electron builder项目上找到了答案,这表明可以通过在捆绑应用程序发行版中包含的
Info.plist
文件中设置
“LSUIElement”:1
来解决问题。苹果公司表示,这种设置确实会使该应用程序作为“代理应用程序”运行,这似乎正是我想要的


是否有任何方法可以在开发中提供此
Info.plist
设置,例如从源代码运行我的应用程序时作为
electron
CLI的启动参数?或者,真的只有通过捆绑一个完整版本并添加一个
Info.plist
文件才能做到这一点吗?

您可以使用
package.json
中的
build.mac.extendInfo
属性为
Info.plist
添加额外的设置

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

"build": {
    "mac": {
        // ... other settings
        "extendInfo": {
            "LSUIElement": true
        }
    }
    // ... other settings
}