Files
wecome-openclaw-client/electron/preload.js
徐总 0880813355 feat: 添加消息历史持久化和可视化查看功能
- 新增 messageStore.js 消息存储模块,支持自动保存所有收发消息
- 修改 main.js,在消息转发时自动记录到本地存储
- 修改 preload.js,暴露消息管理 IPC API
- 修改 App.js,添加消息历史查看界面
  - 统计信息面板(总数/接收/发送/会话数)
  - 会话列表和消息详情
  - 搜索、过滤、分页功能
  - 导出 JSON 和清空历史
- 新增完整文档(MESSAGE_HISTORY.md 等)
- 新增测试脚本 test-message-history.js

版本:v1.0.1
2026-03-10 04:09:26 +08:00

72 lines
2.4 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),
// 测试消息
sendTestMessage: (botId, chatId, text) => ipcRenderer.invoke('send-test-message', botId, chatId, text),
sendTestOpenClawMessage: (text) => ipcRenderer.invoke('send-test-openclaw-message', text),
// 事件监听
onWeComEvent: (callback) => {
ipcRenderer.on('wecom-event', (event, data) => callback(data));
},
onOpenClawEvent: (callback) => {
ipcRenderer.on('openclaw-event', (event, data) => callback(data));
},
// OpenClaw 详细日志
onOpenClawLog: (callback) => {
ipcRenderer.on('openclaw-log', (event, data) => callback(data));
},
// 移除事件监听
removeAllListeners: (channel) => {
ipcRenderer.removeAllListeners(channel);
},
// ============ 消息存储相关 API ============
// 获取消息列表
getMessages: (options) => ipcRenderer.invoke('get-messages', options),
// 获取会话列表
getSessions: () => ipcRenderer.invoke('get-sessions'),
// 搜索消息
searchMessages: (query, options) => ipcRenderer.invoke('search-messages', query, options),
// 获取统计数据
getMessageStats: () => ipcRenderer.invoke('get-message-stats'),
// 标记消息为已读
markMessagesRead: (messageIds) => ipcRenderer.invoke('mark-messages-read', messageIds),
// 导出消息
exportMessages: (options) => ipcRenderer.invoke('export-messages', options),
// 清空消息
clearMessages: (options) => ipcRenderer.invoke('clear-messages', options)
});