vdi/pc-fe/src/main/preload.ts

40 lines
1.6 KiB
TypeScript
Raw Normal View History

2025-07-30 01:07:36 +00:00
import { contextBridge, ipcRenderer } from 'electron';
2025-08-25 07:25:23 +00:00
// 页面调用的方法:桥接前端和主进程
2025-08-21 10:06:49 +00:00
contextBridge.exposeInMainWorld('electronAPI', {
2025-07-30 01:07:36 +00:00
getPlatform: async () => {
return await ipcRenderer.invoke('getPlatform');
},
2025-08-21 10:06:49 +00:00
closeApp: () => ipcRenderer.send('close-app'),
minimizeApp: () => ipcRenderer.send('minimize-app'),
2025-08-28 12:18:57 +00:00
restoreWindow: () => ipcRenderer.send('restore-window'),
maximizeWindow: () => ipcRenderer.send('maximize-window'),
getWindowMaximized: () => ipcRenderer.invoke('get-window-maximized'),
adjustWindowForNormal:() => ipcRenderer.invoke('adjust-window-for-normal'),
2025-08-28 03:14:36 +00:00
// 版本更新相关API
downloadAndUpdate: (url: string) => ipcRenderer.invoke('download-and-update', url),
// 服务器IP获取
getCurrentServerIp: () => ipcRenderer.invoke('get-current-server-ip'),
2025-08-21 10:06:49 +00:00
// 事件监听
onMainProcessMessage: (callback: (data: string) => void) => {
ipcRenderer.on('main-process-message', (_, data) => callback(data));
},
2025-08-28 03:14:36 +00:00
2025-08-21 10:06:49 +00:00
on(...args: Parameters<typeof ipcRenderer.on>) {
const [channel, listener] = args
return ipcRenderer.on(channel, (event, ...args) => listener(event, ...args))
},
off(...args: Parameters<typeof ipcRenderer.off>) {
const [channel, ...omit] = args
return ipcRenderer.off(channel, ...omit)
},
send(...args: Parameters<typeof ipcRenderer.send>) {
const [channel, ...omit] = args
return ipcRenderer.send(channel, ...omit)
},
invoke(...args: Parameters<typeof ipcRenderer.invoke>) {
const [channel, ...omit] = args
return ipcRenderer.invoke(channel, ...omit)
}
2025-07-30 01:07:36 +00:00
});