feat: 初始版本 - 企业微信 OpenClaw 图形配置客户端
- 基于 Electron + React 的跨平台桌面应用 - 支持多 Bot ID 和 Secret 配置 - 双 WebSocket 长连接(企业微信 + OpenClaw Gateway) - 图形化配置界面,实时连接状态显示 - 自动重连机制 - 支持 Windows/macOS/Linux 打包 技术栈: - Electron 28 - React 18 - @wecom/aibot-node-sdk - electron-store 配置持久化
This commit is contained in:
39
electron/preload.js
Normal file
39
electron/preload.js
Normal file
@@ -0,0 +1,39 @@
|
||||
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);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user