当前位置: 首页 > news >正文

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跳过声明文件检查,加快编译速度
http://www.jsqmd.com/news/1201252/

相关文章:

  • Clypra批量处理功能:高效编辑多个视频文件的终极指南
  • LFM2.5-Embedding-350M-bf16应用场景大全:从文档检索到多语言语义匹配
  • 告别低效内耗:Altium Develop,中国硬件工程师与精益团队的最优研发利器
  • 九宫格拼图小程序哪家强?对比5款热门推荐 - 软件工具教程方法
  • Fooocus:3步快速生成专业级AI图像的终极神器
  • 基于Dify工作流与LLM的网页智能摘要实践
  • 技术深度解析:Beyond Compare密钥生成器的实现机制与应用实践
  • 2026南京劳力士回收行情解析:正规渠道怎么选、高价变现指南 - 每日生活报
  • riscv-sodor实战:编写并测试你的第一个RISC-V程序
  • Wireshark抓包分析实战:从协议解析到网络故障排查
  • 百考通AI智能实践报告,精准分层适配,让生成内容更贴合个性化需求
  • 【技术实战】从1,337,000条深圳通数据到Impala实时分析:Python+大数据栈全流程解析
  • 开源项目选型决策地图:从665个仓库精准定位1个可用方案
  • Python自动化开孔工具:配置文件生成与批量文件处理实践
  • 边缘模型 Delta 增量更新方案设计:从权重差分到差量 OTA 推送的完整工程链路
  • 音响电路构成与信号放大原理详解
  • Next LS开发实战:如何为Elixir项目定制语言服务器功能
  • 如何快速上手Unitree GO2 ROS2 SDK:四足机器人开发的终极指南
  • Sketchfab Blender插件:3步实现Blender与在线模型库的无缝对接
  • OpenWrt路由器CUPS打印服务器搭建:从固件选择到Windows/Mac/手机全平台无线打印
  • 2026年企业公众号迁移到另一个企业,流程详解 - 跑政通
  • 实测6款九宫格拼图软件,这2款抠图最精准 - 软件工具教程方法
  • ShaderGraph中Round节点的核心原理与四大实战应用场景解析
  • 使用多光源模式模拟复杂光源
  • 从手动修改到一键操作:Ghost如何彻底解放你的hosts文件管理
  • 终极指南:如何用ACE-Guard限制器轻松解决腾讯游戏卡顿问题 [特殊字符]
  • AndroidRecyclerViewDemo多选功能实现:ActionMode与批量操作完整教程
  • 上海本土企业级GEO合规治理与全域RAG知识库工程落地研究
  • 为什么选聚氨酯轮总踩坑 5个口碑品牌对比拆解 - 信息热点
  • 小程序毕设选题推荐:基于 SpringBoot 的安卓社交博客互动系统的设计与实现 移动端微博资讯发布与评论系统【附源码、mysql、文档、调试+代码讲解+全bao等】