HoRain云--Electron API 速查与配置模板

📅 2026/7/16 17:01:17 👁️ 阅读次数 📝 编程学习
HoRain云--Electron API 速查与配置模板

主进程 API 速查表

模块功能描述常用方法说明
app控制应用生命周期app.on('ready')app.quit()app.getPath('userData')管理应用启动、退出、路径、协议注册等
BrowserWindow创建与管理窗口new BrowserWindow(options)win.loadFile()win.loadURL()win.webContentsElectron 应用的主要 UI 容器,内部运行渲染进程
ipcMain主进程通信接口ipcMain.on(channel, callback)ipcMain.handle(channel, handler)监听渲染进程发来的消息或调用请求
Menu创建应用菜单Menu.buildFromTemplate(menuTemplate)Menu.setApplicationMenu(menu)可自定义菜单项、快捷键、右键菜单
Tray系统托盘管理new Tray(icon)tray.setToolTip()tray.setContextMenu(menu)在任务栏显示图标,常用于后台常驻应用
Dialog系统原生对话框dialog.showOpenDialog()dialog.showSaveDialog()dialog.showMessageBox()文件选择、保存、消息提示等系统交互
Notification系统通知new Notification({ title, body }).show()发送系统原生通知,可带点击回调
Shell调用系统外部资源shell.openExternal(url)shell.showItemInFolder(path)打开外部网页、文件夹、执行文件
Protocol注册自定义协议protocol.registerFileProtocol()protocol.handle()用于自定义资源加载或深度链接
Session管理会话、缓存、Cookiesession.defaultSession.cookies.get()clearCache()对浏览数据和请求做底层控制
Net原生 HTTP/HTTPS 网络请求net.request(options)更底层的网络模块,性能优于fetch
PowerMonitor监控系统电源状态powerMonitor.on('suspend')on('resume')监听电脑睡眠、唤醒、锁屏等状态
Clipboard剪贴板操作clipboard.readText()clipboard.writeText()支持跨平台复制粘贴文本、图片等
GlobalShortcut注册全局快捷键globalShortcut.register('CommandOrControl+X', fn)跨窗口、后台生效的快捷键

渲染进程 API 速查表

模块功能描述常用方法说明
ipcRenderer与主进程通信ipcRenderer.send()ipcRenderer.invoke()ipcRenderer.on()用于渲染进程发送、接收、调用主进程事件
webFrame控制当前页面内容webFrame.setZoomFactor()webFrame.insertCSS()动态修改页面缩放、样式
contextBridge安全暴露 APIcontextBridge.exposeInMainWorld('api', {...})在启用contextIsolation时安全地与主进程交互
desktopCapturer捕获屏幕内容desktopCapturer.getSources({ types: ['window', 'screen'] })用于截图或屏幕录制功能
Notification通知 APInew Notification('标题', { body: '内容' })使用浏览器标准 Notification 发送通知
Clipboard剪贴板操作navigator.clipboard.readText()可访问系统剪贴板(部分功能受限制)
Web Storage / IndexedDB本地存储localStorage.setItem()indexedDB.open()保存轻量或结构化数据
Fetch / Axios网络请求fetch(url)axios.get()用于访问远程接口、加载资源
DOM / Window页面控制document.querySelector()window.open()所有 Web API 均可使用

常用辅助模块速查表

模块主要功能示例
fs文件操作fs.readFileSync(path)fs.writeFile(path, data)
path路径拼接path.join(__dirname, 'index.html')
os系统信息os.platform()os.homedir()
child_process执行子进程exec('ls', callback)
electron-store持久化配置store.set('key', value)store.get('key')
sqlite3 / better-sqlite3本地数据库db.prepare('SELECT * FROM notes').all()
axios / node-fetch网络请求axios.post(url, data)
node-gyp原生模块编译node-gyp rebuild

配置文件模板与说明

package.json 模板与说明

{ "name": "my-electron-app", "version": "1.0.0", "description": "示例 Electron 应用", "main": "main.js", "scripts": { "start": "electron .", "pack": "electron-builder --dir", "dist": "electron-builder" }, "devDependencies": { "electron": "^33.0.0", "electron-builder": "^24.6.0" }, "build": { "appId": "com.example.myelectronapp", "productName": "MyElectronApp", "directories": { "output": "dist" }, "files": [ "main.js", "preload.js", "renderer/**/*" ], "win": { "target": "nsis", "icon": "assets/icon.ico" }, "mac": { "category": "public.app-category.productivity", "icon": "assets/icon.icns" }, "linux": { "target": "AppImage", "icon": "assets/" } } }

说明:

字段含义
name / version / description应用名称、版本号与描述信息
main主进程入口文件(必须)
scripts定义命令脚本,npm start启动,npm run dist打包
devDependencies开发依赖(Electron、打包工具等)
buildelectron-builder的配置项
appId应用唯一 ID,用于签名和更新识别
productName打包后显示的应用名称
directories.output打包输出路径
files指定要打包进应用的文件和目录
win/mac/linux各平台独立打包配置(图标、目标格式)

electron-builder.yml 模板与说明

appId: com.example.myelectronapp productName: MyElectronApp directories: output: dist files: - "main.js" - "preload.js" - "renderer/**/*" win: target: nsis icon: assets/icon.ico mac: target: dmg icon: assets/icon.icns linux: target: AppImage icon: assets/ publish: provider: github repo: my-electron-app owner: username

说明:

配置项说明
appId / productName应用唯一标识与名称
directories.output打包输出目录
files打包文件列表(支持通配符)
win / mac / linux不同系统的构建目标与图标配置
publish自动更新时的发布源配置(如 GitHub Releases)

TypeScript tsconfig.json 模板与说明

{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "strict": true, "outDir": "./dist", "rootDir": "./src", "esModuleInterop": true, "moduleResolution": "node", "resolveJsonModule": true, "skipLibCheck": true }, "include": ["src/**/*"], "exclude": ["node_modules"] }

说明:

选项含义
target编译目标 JavaScript 版本
module模块系统,Electron 主进程一般使用commonjs
outDir / rootDir输出与源码目录
strict启用严格类型检查
esModuleInterop允许默认导入非 ES 模块
resolveJsonModule支持导入 JSON 文件
skipLibCheck跳过声明文件检查,加快编译速度