32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { contextBridge, ipcRenderer } from 'electron';
|
|
|
|
// 页面调用的方法
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
getPlatform: async () => {
|
|
return await ipcRenderer.invoke('getPlatform');
|
|
},
|
|
closeApp: () => ipcRenderer.send('close-app'),
|
|
minimizeApp: () => ipcRenderer.send('minimize-app'),
|
|
exitKiosk: () => ipcRenderer.send('exit-kiosk'),
|
|
// 事件监听
|
|
onMainProcessMessage: (callback: (data: string) => void) => {
|
|
ipcRenderer.on('main-process-message', (_, data) => callback(data));
|
|
},
|
|
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)
|
|
}
|
|
});
|