fix(preload): 修复ipc.on解绑监听器失效问题

This commit is contained in:
alger
2026-03-04 20:56:12 +08:00
parent e64e97c7bf
commit 92877d86e9

View File

@@ -1,4 +1,5 @@
import { electronAPI } from '@electron-toolkit/preload';
import type { IpcRendererEvent } from 'electron';
import { contextBridge, ipcRenderer } from 'electron';
// Custom APIs for renderer
@@ -87,9 +88,10 @@ const ipc = {
},
// 监听主进程消息
on: (channel: string, listener: (...args: any[]) => void) => {
ipcRenderer.on(channel, (_, ...args) => listener(...args));
const wrappedListener = (_event: IpcRendererEvent, ...args: any[]) => listener(...args);
ipcRenderer.on(channel, wrappedListener);
return () => {
ipcRenderer.removeListener(channel, listener);
ipcRenderer.removeListener(channel, wrappedListener);
};
},
// 移除所有监听器