通过 Electron 托盘(tray)实现后台执⾏⻓任务title: Electron 应⽤处理⻓任务 date: 2020-11-26 tags: electron, node description: 通过 Electron 托盘(tray)实现后台执⾏⻓任务。 Electron 应⽤在执⾏⼀些⻓时间任务(⽐如上传、下载),我们想关闭界⾯后任务依旧执⾏。再次打开界⾯,依旧可以看到正在执⾏的任务以及任 务进度。托盘可以帮我们实现这个功能。 创建托盘和菜单示例 实例化 Tray 并传⼊图标路径; 创建菜单并配置到托盘中。 const { app, Menu, Tray } = require('electron') let tray = null; // 等同 app.on('read', () => { ... }) app.whenReady().then(() => { tray = new Tray tray.setContextMenu(contextMenu) }) 基于托盘功能实现后台运⾏应⽤ 关闭应⽤前唤醒对话框⼆次确认 关闭应⽤时,触发对话框,可⽀持 3 种场景: 点击「取消」取消关闭操作; 点击「退出」,「后台运⾏」选中时,界⾯关闭,托盘不关闭,任务继续执⾏; 点击「退出」,「后台运⾏」不选中,界⾯、托盘关闭,直接退出,任务终⽌。 mainWindow.on('close'0 码力 | 6 页 | 1.19 MB | 1 年前3
Building Desktop Applications with Electron2 • What is Electron? 3 4 5 6 7 IPC Renderer Process Main/Browser Process Renderer Process Renderer Process 8 • My first Electron App 9 10 { "name": "my-app", "version": "1.0.0", "description": minimal Electron application", "main": "main.js", "scripts": { "start": "electron ." }, "devDependencies": { "electron": "~1.8.2-beta.5" } } 11 const { app, BrowserWindow} = require('electron') const Chromium , and Electron .













