| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { ipcRenderer, contextBridge } from 'electron'
- // --------- Expose some API to the Renderer process ---------
- contextBridge.exposeInMainWorld('ipcRenderer', {
- 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)
- },
- // You can expose other APTs you need here.
- // ...
- })
- // 暴露窗口控制API
- contextBridge.exposeInMainWorld('electronAPI', {
- exit: () => ipcRenderer.send('exit-app'),
- toggleFullScreen: (isFullScreen: boolean) => ipcRenderer.send('toggle-fullscreen', isFullScreen),
- toggleDevTools: () => ipcRenderer.send('toggle-dev-tools'),
- loadAppsJson: () => ipcRenderer.invoke('load-apps-json'),
- loadDefaultAppsJson: () => ipcRenderer.invoke('load-default-apps-json'),
- saveAppsJson: (appsJson: string) => ipcRenderer.send('save-apps-json', appsJson),
- openWindow: (url: string) => ipcRenderer.send('open-window', url),
- loadChildUrl: (url: string, aspectRatio: number) => ipcRenderer.send('load-child-url', url, aspectRatio),
- toggleChildSide: (isSideOen: boolean) => ipcRenderer.send('toggle-child-side', isSideOen),
- showConfig: () => ipcRenderer.send('show-config'),
- showAbout: () => ipcRenderer.send('show-about'),
- })
|