Files
wecome-openclaw-client/electron/preload.js
徐总 9cce1e76fc feat: 初始版本 - 企业微信 OpenClaw 图形配置客户端
- 基于 Electron + React 的跨平台桌面应用
- 支持多 Bot ID 和 Secret 配置
- 双 WebSocket 长连接(企业微信 + OpenClaw Gateway)
- 图形化配置界面,实时连接状态显示
- 自动重连机制
- 支持 Windows/macOS/Linux 打包

技术栈:
- Electron 28
- React 18
- @wecom/aibot-node-sdk
- electron-store 配置持久化
2026-03-09 20:30:56 +08:00

40 lines
1.3 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
// 暴露安全的 API 给渲染进程
contextBridge.exposeInMainWorld('electronAPI', {
// 配置管理
getConfig: () => ipcRenderer.invoke('get-config'),
saveConfig: (config) => ipcRenderer.invoke('save-config', config),
// 企业微信连接
connectWeCom: (botConfig) => ipcRenderer.invoke('connect-wecom', botConfig),
disconnectWeCom: (botId) => ipcRenderer.invoke('disconnect-wecom', botId),
// OpenClaw 连接
connectOpenClaw: (config) => ipcRenderer.invoke('connect-openclaw', config),
disconnectOpenClaw: () => ipcRenderer.invoke('disconnect-openclaw'),
// 连接状态
getConnectionStatus: () => ipcRenderer.invoke('get-connection-status'),
// 消息发送
sendWeComMessage: (botId, message) => ipcRenderer.invoke('send-wecom-message', botId, message),
// 文件选择
selectFile: (options) => ipcRenderer.invoke('select-file', options),
// 事件监听
onWeComEvent: (callback) => {
ipcRenderer.on('wecom-event', (event, data) => callback(data));
},
onOpenClawEvent: (callback) => {
ipcRenderer.on('openclaw-event', (event, data) => callback(data));
},
// 移除事件监听
removeAllListeners: (channel) => {
ipcRenderer.removeAllListeners(channel);
}
});