尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

electron+vue——托盘图标及菜单实现 - 前端

electron+vue——托盘图标及菜单实现 - 前端
📅 发布时间:2026/6/22 3:47:46
效果:

AF6DCF89-67ED-404d-AC0C-18BD770CDF03

 我的项目结构:

image

 background.js:

"use strict";
import { app, BrowserWindow, Menu, Tray, nativeImage } from "electron";
import * as path from "path";
const fs = require("fs");let mainWindow = null; // 窗口
let tray = null; // 托盘// 获取图标路径
function getIconPath() {let iconPath = "";const iconFile = "icon.ico"; // 图标文件名// 判断是否在打包模式if (app.isPackaged) {// 打包模式iconPath = path.join(process.resourcesPath, "icons", iconFile); // 路径根据自身情况调整} else {// 开发模式const projectRoot = path.join(__dirname, ".."); // __dirname 指向 dist_electron,但资源在项目根目录,所以..指向上一级iconPath = path.join(projectRoot, "icons", iconFile);}// 检查文件是否存在if (fs.existsSync(iconPath)) {console.log("图标文件存在:", iconPath);return iconPath;} else {console.error("图标文件不存在:", iconPath);// 返回一个默认图标路径或nullreturn null;}
}function createWindow() {// 创建浏览器窗口mainWindow = new BrowserWindow({// 其他icon: getIconPath(), // 本地启动图标
  });
}// 创建系统托盘图标和菜单
function createTray() {// 创建图标const iconPath = getIconPath();const icon = nativeImage.createFromPath(iconPath);// 调整图标大小(可选)icon.resize({ width: 16, height: 16 });tray = new Tray(icon);// 创建上下文菜单const contextMenu = Menu.buildFromTemplate([{label: "显示",click: () => {mainWindow.show();},},{label: "隐藏",click: () => {mainWindow.hide();},},{label: "退出",click: () => {mainWindow.destroy();},},]);tray.setContextMenu(contextMenu); // 设置托盘菜单tray.setToolTip("测试应用"); // 设置托盘图标的提示文本// 托盘图标右键事件(可选)tray.on("right-click", () => {tray.popUpContextMenu(); // 弹出托盘菜单
  });
}// 主进程准备完毕
app.on("ready", async () => {createWindow();createTray();
});

vue.config.js:

const appName = "测试应用";
module.exports = {pluginOptions: {electronBuilder: {builderOptions: {artifactName: "${productName}.${ext}", // 打包生成的安装包名称,默认会有 "Setup ${version}" 后缀appId: `com.alpha.${appName}.app`, // 应用的唯一标识符productName: appName, // 应用名称
        win: {icon: "icons/icon.ico",target: [{target: "nsis",arch: ["x64", "ia32"], // 兼容32位
            },],},// 关键,确保打包后图标文件存在于运行时可访问的位置
        extraResources: [{from: "icons",to: "icons",filter: ["**/*"],},],},},},
};

 

相关新闻

  • 全场景通信工业级可编程工控机ECM50-A06方案介绍
  • smart_IO
  • 2025博士申请套磁策略成功率榜单:谁的成功率最高?

最新新闻

  • 2026年衡阳少儿美术培训机构有哪些 精选指南 - 谁都没有我好看
  • 武汉市汉阳区厨卫改造|维小达|卫生间改造、厨房翻新、墙地铺贴、防水重做、橱柜卫浴拆装、下水整改全屋厨卫一站式改造翻新服务 - 维小达科技
  • 零基础入门网络安全:从虚拟环境搭建到网络钓鱼攻防实战演练
  • 昆明同城宠舍横评实测|5家犬舍深度测评,朋博双店实力断层领跑 - 同城宠物优选基地
  • 钻石变现干货|2026南京五家黄金回收中心钻戒回收行情深度拆解 - 讯息早知道
  • 打磨机器人核心技术深度解析:去毛刺工艺与柔性力控系统完整指南 - 资讯报道

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号