import { contextBridge, ipcRenderer } from 'electron'; // 页面调用的方法:桥接前端和主进程 contextBridge.exposeInMainWorld('electronAPI', { getPlatform: async () => { return await ipcRenderer.invoke('getPlatform'); }, closeApp: () => ipcRenderer.send('close-app'), minimizeApp: () => ipcRenderer.send('minimize-app'), exitKiosk: () => ipcRenderer.send('exit-kiosk'), // 新增的 gRPC API grpcStartDownload: (config: any) => ipcRenderer.invoke('grpc-start-download', config), grpcStopDownload: (downloadId: string) => ipcRenderer.invoke('grpc-stop-download', downloadId), grpcCheckConnection: () => ipcRenderer.invoke('grpc-check-connection'), // gRPC 进度监听 onGrpcProgress: (callback: (progress: any) => void) => { ipcRenderer.on('grpc-progress-update', (_, progress) => callback(progress)); }, // 移除监听器 removeAllGrpcProgressListeners: () => { ipcRenderer.removeAllListeners('grpc-progress-update'); }, // 事件监听 onMainProcessMessage: (callback: (data: string) => void) => { ipcRenderer.on('main-process-message', (_, data) => callback(data)); }, on(...args: Parameters) { const [channel, listener] = args return ipcRenderer.on(channel, (event, ...args) => listener(event, ...args)) }, off(...args: Parameters) { const [channel, ...omit] = args return ipcRenderer.off(channel, ...omit) }, send(...args: Parameters) { const [channel, ...omit] = args return ipcRenderer.send(channel, ...omit) }, invoke(...args: Parameters) { const [channel, ...omit] = args return ipcRenderer.invoke(channel, ...omit) } });