在 Mac 上为基于 Electron 的 App 提供不同的 Dock 和 Tray 图标?
Provide different Dock and Tray icons for Electron based App on Mac?
我进行了一些研究,到目前为止只找到了有关模板图像的资源,但没有找到明确的指南。我正在构建一个 Electron 应用程序 (Electron 8.0)。我确实为深色模式和常规模式定制了图标。
我知道我可以提供像这样的高 dpi 图标:
- tray_icon.png
- tray_icon@2.png
Dock 图标在 icns
文件中类似。我想知道我是否可以对深色模式图标和常规模式图标做同样的事情。
我如何需要 prepare/name 我的图标,以便 macOS Catalina 为托盘和 Dock 选择不同的图标,无论是 运行 在常规模式还是在深色模式下?
我是否需要实现一些逻辑来以编程方式切换图标?当我的 Electron 应用程序不是 运行 但主题已切换时,如何执行这样的逻辑?
以编程方式,这很容易实现
const { nativeTheme } = require('electron')
nativeTheme.on('updated', function theThemeHasChanged () {
updateMyAppTheme(nativeTheme.shouldUseDarkColors)
})
// set tray & dock images here
function updateMyAppTheme(isDark) {
tray.setImage(isDark? darkTrayImagePath : lightTrayImagePath)
dock.setIcon(isDark? darkDockImagePath : lightDockImagePath)
}
相关文档:
我进行了一些研究,到目前为止只找到了有关模板图像的资源,但没有找到明确的指南。我正在构建一个 Electron 应用程序 (Electron 8.0)。我确实为深色模式和常规模式定制了图标。
我知道我可以提供像这样的高 dpi 图标:
- tray_icon.png
- tray_icon@2.png
Dock 图标在 icns
文件中类似。我想知道我是否可以对深色模式图标和常规模式图标做同样的事情。
我如何需要 prepare/name 我的图标,以便 macOS Catalina 为托盘和 Dock 选择不同的图标,无论是 运行 在常规模式还是在深色模式下?
我是否需要实现一些逻辑来以编程方式切换图标?当我的 Electron 应用程序不是 运行 但主题已切换时,如何执行这样的逻辑?
以编程方式,这很容易实现
const { nativeTheme } = require('electron')
nativeTheme.on('updated', function theThemeHasChanged () {
updateMyAppTheme(nativeTheme.shouldUseDarkColors)
})
// set tray & dock images here
function updateMyAppTheme(isDark) {
tray.setImage(isDark? darkTrayImagePath : lightTrayImagePath)
dock.setIcon(isDark? darkDockImagePath : lightDockImagePath)
}
相关文档: