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

Tauri应用中通知与关于面板图标修改问题求助

Tauri macOS:通知与关于面板图标不生效的解决办法

一、关于面板图标修复

macOS的关于面板图标读取的是应用包内的AppIcon.icns文件,yarn tauricon可能未正确覆盖该文件。你可以按以下步骤处理:

  • 准备符合要求的.icns图标(推荐512x512像素,包含多尺寸适配),放到项目的src-tauri/icons目录下。
  • 修改src-tauri/tauri.conf.json的bundle配置,确保icon字段指向该.icns文件,示例:
    "bundle": {
      "icon": ["icons/icon.icns", "icons/icon.png", ...]
    }
    
  • 重新执行打包命令,新的图标会被自动嵌入应用包的Contents/Resources目录,关于面板即可正常显示图标。

二、通知图标配置

sendNotification()的icon参数需要传入图标的绝对路径,你可以通过Tauri的资源目录来管理图标:

  1. 先将通知图标(推荐PNG格式,256x256像素)放到src-tauri/resources目录下,打包后该目录会被嵌入应用包。
  2. 若用Rust后端调用:
    use tauri::{api::notification::Notification, path::resource_dir};
    
    let icon_path = resource_dir().unwrap().join("notify-icon.png");
    Notification::new()
      .title("新消息")
      .body("这是一条测试通知")
      .icon(icon_path.to_str().unwrap())
      .show()?;
    
  3. 若用前端JS调用:
    async function sendNotif() {
      const resourceDir = await window.__TAURI__.path.resourceDir();
      const iconPath = `${resourceDir}/notify-icon.png`;
      window.__TAURI__.notification.sendNotification({
        title: "新消息",
        body: "这是一条测试通知",
        icon: iconPath
      });
    }
    
    注意:直接传入相对路径可能无法被macOS识别,必须使用绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:20:41