UNPKG

@lynker-desktop/electron-ipc

Version:

electron-ipc

123 lines 4.85 kB
export declare let isInitialized: boolean; /** * 主进程 IPC 通信类 * 负责处理主进程与渲染进程之间的消息通信 * 使用单例模式确保全局唯一实例 * * 修复说明: * - 为每个请求生成唯一的 requestId,解决并发请求数据错乱问题 * - 确保请求和响应能够正确匹配,避免多个并发请求互相干扰 */ declare class MainIPC { static instance: MainIPC; private eventEmitter; constructor(); /** * 发送给主进程消息 * 使用唯一的 requestId 确保并发请求不会互相干扰 * * @param channel 消息通道名称 * @param args 传递给处理器的参数 * @returns Promise<any> 返回处理结果 * * 修复说明: * - 为每个请求生成唯一的 requestId * - 监听 `${channel}-reply-${requestId}` 事件,确保只接收对应请求的回复 * - 发送请求时包含 requestId,让处理器知道如何回复 */ invokeMain(channel: string, ...args: any[]): Promise<any>; /** * 处理主进程发送过来的消息 * 持续监听指定通道的消息 * * @param channel 消息通道名称 * @param handler 处理函数,接收除 requestId 外的所有参数 * * 修复说明: * - 接收 requestId 作为第一个参数 * - 使用 `${channel}-reply-${requestId}` 发送回复,确保回复给正确的请求 * - 支持多个并发请求,每个请求都有独立的回复通道 */ handleMain(channel: string, handler: (...args: any[]) => Promise<any>): { cancel: () => void; }; /** * 发送给渲染进程消息 * 使用唯一的 requestId 确保并发请求不会互相干扰 * * @param webContents 目标渲染进程的 WebContents 对象 * @param channel 消息通道名称 * @param args 传递给渲染进程的参数 * @returns Promise<any> 返回渲染进程的处理结果 * * 修复说明: * - 为每个请求生成唯一的 requestId * - 监听 `${channel}-reply-${requestId}` 事件,确保只接收对应请求的回复 * - 发送请求时包含 requestId,让渲染进程知道如何回复 * - 等待渲染进程加载完成后再发送消息,确保消息能够被正确接收 */ invokeRenderer(webContents: Electron.WebContents, channel: string, ...args: any[]): Promise<any>; /** * 发送给所有渲染进程消息 * 向所有渲染进程发送消息并收集所有响应 * * @param channel 消息通道名称 * @param args 传递给所有渲染进程的参数 * @returns Promise<any[]> 返回所有渲染进程的处理结果数组 * * 修复说明: * - 为每个请求生成唯一的 requestId * - 收集所有渲染进程的响应,当所有响应都收到时才 resolve * - 使用 `${channel}-reply-${requestId}` 确保只接收对应请求的回复 * - 如果没有渲染进程,直接返回空数组 * - 等待每个渲染进程加载完成后再发送消息 */ invokeAllRenderer(channel: string, ...args: any[]): Promise<any>; /** * 处理渲染进程发送过来的消息 * 持续监听指定通道的消息,支持超时处理 * * @param channel 消息通道名称 * @param handler 处理函数,接收除 requestId 外的所有参数 * * 修复说明: * - 接收 requestId 作为第一个参数 * - 使用 ipcMain.handle 替代 ipcMain.on,提供更好的错误处理 * - 支持 8 秒超时机制,避免长时间等待 * - 支持并发请求,每个请求都有独立的处理流程 * - 提供详细的错误日志记录 */ handleRenderer(channel: string, handler: (...args: any[]) => Promise<any>): { cancel: () => void; }; /** * 初始化消息中继功能 * 设置消息转发和回复机制,支持跨渲染进程通信 * * 功能说明: * - relay-message: 转发消息到指定的渲染进程或所有渲染进程 * - relay-reply: 处理回复消息,广播给所有渲染进程 * - __GetCurrentWebContentId__: 获取当前 WebContent ID * - __OpenCurrentWebContentDevTools__: 打开当前 WebContent 的开发者工具 */ relayMessage(): void; } /** * 全局 MainIPC 实例 * 使用全局变量确保单例模式,避免重复创建实例 */ export declare const mainIPC: MainIPC; /** * 初始化 IPC 通信系统 * 设置消息中继功能,确保跨进程通信正常工作 * * @returns MainIPC 实例 * * 功能说明: * - 检查是否已经初始化,避免重复初始化 * - 设置消息中继功能,支持跨渲染进程通信 * - 返回全局 MainIPC 实例 */ export declare const initialize: () => any; export {}; //# sourceMappingURL=index.d.ts.map