- 基于 Electron + React 的跨平台桌面应用 - 支持多 Bot ID 和 Secret 配置 - 双 WebSocket 长连接(企业微信 + OpenClaw Gateway) - 图形化配置界面,实时连接状态显示 - 自动重连机制 - 支持 Windows/macOS/Linux 打包 技术栈: - Electron 28 - React 18 - @wecom/aibot-node-sdk - electron-store 配置持久化
40 lines
1.3 KiB
JavaScript
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);
|
|
}
|
|
});
|