preload.cjs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const { contextBridge, ipcRenderer } = require('electron');
  2. contextBridge.exposeInMainWorld('electronAPI', {
  3. getAdbPathConfig: () => ipcRenderer.invoke('get-adb-path-config'),
  4. scanADBDevices: () => ipcRenderer.invoke('scan-adb-devices'),
  5. getADBDevices: () => ipcRenderer.invoke('get-adb-devices'),
  6. connectADBDevice: (ipPort) => ipcRenderer.invoke('connect-adb-device', ipPort),
  7. getDeviceResolution: (ipPort) => ipcRenderer.invoke('get-device-resolution', ipPort),
  8. captureScreenshot: (ipPort, options) => ipcRenderer.invoke('capture-screenshot', ipPort, options),
  9. sendTap: (ipPort, x, y) => ipcRenderer.invoke('send-tap', ipPort, x, y),
  10. sendSwipe: (ipPort, x1, y1, x2, y2, duration) => ipcRenderer.invoke('send-swipe', ipPort, x1, y1, x2, y2, duration),
  11. sendText: (ipPort, text) => ipcRenderer.invoke('send-text', ipPort, text),
  12. sendScroll: (ipPort, direction, width, height, scrollDistance, duration) => ipcRenderer.invoke('send-scroll', ipPort, direction, width, height, scrollDistance, duration),
  13. sendKeyEvent: (ipPort, keyCode) => ipcRenderer.invoke('send-key-event', ipPort, keyCode),
  14. // 监听设备发现事件
  15. onDeviceFound: (callback) => {
  16. ipcRenderer.on('device-found', (event, device) => callback(device));
  17. },
  18. // 移除设备发现事件监听器
  19. removeDeviceFoundListener: () => {
  20. ipcRenderer.removeAllListeners('device-found');
  21. },
  22. // 获取 static 目录下的文件夹列表
  23. getStaticFolders: () => ipcRenderer.invoke('get-static-folders'),
  24. // 图像匹配并获取坐标
  25. matchImageAndGetCoordinate: (ipPort, templateImagePath) => ipcRenderer.invoke('match-image-and-get-coordinate', ipPort, templateImagePath),
  26. // 读取 processing.json 文件
  27. readProcessingJson: (folderName) => ipcRenderer.invoke('read-processing-json', folderName),
  28. // 文字识别并获取坐标
  29. findTextAndGetCoordinate: (ipPort, targetText) => ipcRenderer.invoke('find-text-and-get-coordinate', ipPort, targetText),
  30. // OCR识别最后一条消息(兼容旧API)
  31. ocrLastMessage: (ipPort, method, avatarPath, area, folderPath) => ipcRenderer.invoke('ocr-last-message', ipPort, method, avatarPath, area, folderPath),
  32. // 提取聊天记录
  33. extractChatHistory: (ipPort, friendAvatarPath, myAvatarPath, workflowFolderPath) => ipcRenderer.invoke('extract-chat-history', ipPort, friendAvatarPath, myAvatarPath, workflowFolderPath),
  34. // 获取最后一条消息(带发送者信息)
  35. getLastChatMessage: (ipPort, friendAvatarPath, myAvatarPath) => ipcRenderer.invoke('get-last-chat-message', ipPort, friendAvatarPath, myAvatarPath),
  36. // 保存工作流(支持图片)
  37. saveWorkflow: (workflowJson, imagesData) => ipcRenderer.invoke('save-workflow', workflowJson, imagesData),
  38. // 删除工作流
  39. deleteWorkflow: (folderName) => ipcRenderer.invoke('delete-workflow', folderName),
  40. // 确保目录存在
  41. ensureDirectory: (dirPath) => ipcRenderer.invoke('ensure-directory', dirPath),
  42. // 写入文本文件
  43. writeTextFile: (filePath, content) => ipcRenderer.invoke('write-text-file', filePath, content),
  44. // 读取文本文件
  45. readTextFile: (filePath) => ipcRenderer.invoke('read-text-file', filePath),
  46. // 保存聊天记录
  47. saveChatHistory: (workflowFolderPath, historyData) => ipcRenderer.invoke('save-chat-history', workflowFolderPath, historyData),
  48. // 保存聊天记录总结
  49. saveChatHistorySummary: (workflowFolderPath, summary) => ipcRenderer.invoke('save-chat-history-summary', workflowFolderPath, summary),
  50. // 获取聊天记录总结
  51. getChatHistorySummary: (workflowFolderPath) => ipcRenderer.invoke('get-chat-history-summary', workflowFolderPath),
  52. });