// 使用 require 避免 ESM 问题 const { contextBridge, ipcRenderer } = require('electron'); // 暴露给渲染进程的 API contextBridge.exposeInMainWorld('electronAPI', { // 应用信息 getAppVersion: () => ipcRenderer.invoke('get-app-version'), getPlatform: () => ipcRenderer.invoke('get-platform'), // 窗口控制 minimizeWindow: () => ipcRenderer.send('window-minimize'), maximizeWindow: () => ipcRenderer.send('window-maximize'), closeWindow: () => ipcRenderer.send('window-close'), // 文件操作 selectFile: (options?: { filters?: { name: string; extensions: string[] }[] }) => ipcRenderer.invoke('select-file', options), selectFolder: () => ipcRenderer.invoke('select-folder'), // 通知 showNotification: (title: string, body: string) => ipcRenderer.send('show-notification', { title, body }), }); // 类型声明 declare global { interface Window { electronAPI: { getAppVersion: () => Promise; getPlatform: () => Promise; minimizeWindow: () => void; maximizeWindow: () => void; closeWindow: () => void; selectFile: (options?: { filters?: { name: string; extensions: string[] }[] }) => Promise; selectFolder: () => Promise; showNotification: (title: string, body: string) => void; }; } }