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

标签 electron

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

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

经过更多挖掘,我在 Electron 构建器项目中找到了 this issue comment,这表明可以通过在捆绑的应用程序分发中包含的 "LSUIElement": 1 文件中设置 Info.plist 来解决该问题。苹果的 docs for LSUIElement 说这个设置确实会让应用作为“代理应用”运行,这似乎是我想要的。

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

最佳答案

您可以使用该属性 build.mac.extendInfopackage.json将其他设置添加到 Info.plist . https://www.electron.build/configuration/mac
以下是添加 LSUIElement 的示例到 package.json 中的 Mac build设置.

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

关于electron - 当我的 Electron 应用程序在 macOS 上启动时,如何避免显示 Dock 图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668664/

相关文章:

javascript - 是否可以外部化 Electron 菜单模板代码?

node.js - JXcore 与 Electron

node.js - 错误: Electron packaging with electron-packager

powershell - 如何防止Windows在electronic.js或Powershell中打开快捷方式CTRL + ESC上的开始菜单

javascript - 如何获取NodeJS子进程以通过CMD.exe运行.bat文件

javascript - 按下 "esc"时退出全屏(使用带有 electron 的 javascript)

angular - 找不到模块 Electron

node.js - Electron ,从主窗口关闭 “sub-window”

javascript - 使用可选参数运行LIKE查询-SQLite3

javascript - 为什么我的渲染器进程会收到 "exports is not defined"?