Electron应用在Mac系统通知显示双图标问题求助
Electron Mac通知双图标问题解决方法
方法1:替换应用主图标(彻底解决)
把你的自定义白色图标设置为应用的主图标,这样Mac通知左侧会直接显示该图标,不会出现双图标。操作步骤:
- 制作符合Mac规范的.icns图标集(包含16x16、32x32、128x128等多尺寸图标)。
- 在Electron打包配置(如electron-builder、electron-packager)中指定该.icns文件为应用图标。
- 重新打包后,通知将只显示你的自定义图标,无需在代码中额外设置
icon参数。
方法2:发送通知时隐藏Dock图标
如果不想修改应用主图标,可以在发送通知时临时隐藏Dock图标,避免通知显示应用图标:
import { app, nativeImage, Notification } from 'electron'; import Config from './your-config-path'; class NotificationSender { private readonly icon: NativeImage; constructor() { this.icon = nativeImage.createFromPath(Config.iconPath); } public show(title: string, msg: string) { // Mac平台下临时隐藏Dock图标 if (process.platform === 'darwin') { app.dock.hide(); } const notification = new Notification({ title, body: msg, icon: this.icon, }); // 通知关闭后恢复Dock图标(按需启用) notification.on('close', () => { if (process.platform === 'darwin') { app.dock.show(); } }); notification.show(); } } export const notificationsSender = new NotificationSender();
注意:此方法会在通知发送期间隐藏应用的Dock图标,若应用需要常驻Dock,需谨慎使用。
方法3:修改应用Info.plist配置
通过配置应用的Info.plist,指定通知默认使用自定义图标,替代应用主图标:
- 找到打包后的.app应用包,右键选择「显示包内容」。
- 打开
Contents/Info.plist文件,添加以下配置:
<key>NSUserNotificationIcon</key> <string>Resources/your-icon.icns</string>
(请将Resources/your-icon.icns替换为自定义图标在应用包内的实际路径)
3. 保存后重新打开应用,通知将只显示你指定的自定义图标。
内容的提问来源于stack exchange,提问作者Or Yaacov
相关产品推荐
相关产品推荐

