This commit is contained in:
LuoPengcheng 2025-11-21 17:26:17 +08:00
parent 4940cc6b46
commit dd7ebec8ee

View file

@ -41,10 +41,15 @@ contextBridge.exposeInMainWorld('electronAPI', {
hideWebView: (id: string) => ipcRenderer.invoke('hide-webview', id),
changeViewSize: (id: string, size: Size) => ipcRenderer.invoke('change-view-size', id, size),
onWebviewNavigated: (callback: (id: string, url: string) => void) => {
const channel = 'webview-navigated'
const listener = (event: any, id: string, url: string) => callback(id, url);
ipcRenderer.on('webview-navigated', listener);
ipcRenderer.on(channel, listener);
console.log(`[preload] add ${channel}; count=${ipcRenderer.listenerCount(channel)}`)
// Return cleanup function to remove listener
return () => ipcRenderer.off('webview-navigated', listener);
return () => {
ipcRenderer.off(channel, listener);
console.log(`[preload] remove ${channel}; count=${ipcRenderer.listenerCount(channel)}`)
};
},
showWebview: (id: string) => ipcRenderer.invoke('show-webview', id),
getActiveWebview: () => ipcRenderer.invoke('get-active-webview'),
@ -197,4 +202,4 @@ window.onmessage = (ev) => {
ev.data.payload === 'removeLoading' && removeLoading()
}
setTimeout(removeLoading, 4999)
setTimeout(removeLoading, 4999)