Files
MailUI4Agents/web/electron/preload.cjs
JianFeeeee dc5b9e440f pi-ele Phase 1: Electron 骨架(主进程+托盘+preload,可复用 web/src)
- web/electron/main.cjs: BrowserWindow 加载 dist/index.html(prod)或 vite dev server
  托盘(进托盘/退出/单击恢复),关闭按钮隐藏到托盘而非退出(用户要求)
- web/electron/preload.cjs: contextBridge 暴露 gatewayUrl/versions/platform
- web/package.json: 加 main 指向 main.cjs、dev:electron / build:win / build:linux 脚本、
  electron 44.2.0 + electron-builder 26.15.3 依赖、build 配置(NSIS/AppImage/deb)
- .gitignore: /release/

验证(headless + xvfb):
- Electron 加载 Gateway WebUI 成功(title=AgentMail, body 渲染)
- Tray API 可用,BrowserWindow 正常
- prod 模式真实 main.cjs 无报错
2026-09-07 07:46:07 +08:00

25 lines
878 B
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* AgentMail Electron preload —— 通过 contextBridge 暴露安全 API 给渲染进程。
*
* 渲染进程是 web/src 的 React跑在 sandbox: true 下(无 nodeIntegration
* 需要桌面能力时文件选择、通知、托盘角标、SSE 转发)走这里暴露的桥。
*
* Phase 1 只暴露最小集;后续 Phase 逐步加。
*/
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('agentmail', {
/** Gateway 基础地址(主进程 env 或默认 127.0.0.1:8180 */
gatewayUrl: () => ipcRenderer.invoke('get-gateway-url'),
/** 版本信息(渲染进程可显示在 About 页) */
versions: {
electron: process.versions.electron,
chrome: process.versions.chrome,
node: process.versions.node,
},
/** 平台标识win32 / linux / darwin */
platform: process.platform,
});