// preload.js const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { selectApkFile: () => ipcRenderer.invoke('select-apk-file'), selectFile: () => ipcRenderer.invoke('select-file'), manualGc: () => ipcRenderer.invoke('manual-gc'), mqSend: (arg) => ipcRenderer.invoke('mq-send', arg), startMq: (tendid, id) => ipcRenderer.invoke('start-mq', tendid, id), fileExists: (url) => ipcRenderer.invoke('file-exists', url), isiproxy: (url) => ipcRenderer.invoke('isiproxy', url), }) contextBridge.exposeInMainWorld('appUpdater', { onAvailable: (cb) => ipcRenderer.on('update:available', (_e, info) => cb(info)), onProgress: (cb) => ipcRenderer.on('update:progress', (_e, p) => cb(p)), onDownloaded: (cb) => ipcRenderer.on('update:downloaded', (_e, info) => cb(info)), onError: (cb) => ipcRenderer.on('update:error', (_e, err) => cb(err)), // 主动触发 checkNow: () => ipcRenderer.invoke('update:checkNow'), quitAndInstallNow: () => ipcRenderer.invoke('update:quitAndInstallNow'), }); // 页面卸载时清理监听(可选) window.addEventListener('unload', () => { ipcRenderer.removeAllListeners('update:available'); ipcRenderer.removeAllListeners('update:progress'); ipcRenderer.removeAllListeners('update:downloaded'); ipcRenderer.removeAllListeners('update:error'); });