You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,指定通知默认使用自定义图标,替代应用主图标:

  1. 找到打包后的.app应用包,右键选择「显示包内容」。
  2. 打开Contents/Info.plist文件,添加以下配置:
<key>NSUserNotificationIcon</key>
<string>Resources/your-icon.icns</string>

(请将Resources/your-icon.icns替换为自定义图标在应用包内的实际路径)
3. 保存后重新打开应用,通知将只显示你指定的自定义图标。

内容的提问来源于stack exchange,提问作者Or Yaacov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:53:36