preload.mjs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. const electron = require("electron");
  3. electron.contextBridge.exposeInMainWorld("ipcRenderer", {
  4. on(...args) {
  5. const [channel, listener] = args;
  6. return electron.ipcRenderer.on(channel, (event, ...args2) => listener(event, ...args2));
  7. },
  8. off(...args) {
  9. const [channel, ...omit] = args;
  10. return electron.ipcRenderer.off(channel, ...omit);
  11. },
  12. send(...args) {
  13. const [channel, ...omit] = args;
  14. return electron.ipcRenderer.send(channel, ...omit);
  15. },
  16. invoke(...args) {
  17. const [channel, ...omit] = args;
  18. return electron.ipcRenderer.invoke(channel, ...omit);
  19. }
  20. // You can expose other APTs you need here.
  21. // ...
  22. });
  23. electron.contextBridge.exposeInMainWorld("electronAPI", {
  24. exit: () => electron.ipcRenderer.send("exit-app"),
  25. toggleFullScreen: (isFullScreen) => electron.ipcRenderer.send("toggle-fullscreen", isFullScreen),
  26. toggleDevTools: () => electron.ipcRenderer.send("toggle-dev-tools"),
  27. loadAppsJson: () => electron.ipcRenderer.invoke("load-apps-json"),
  28. loadDefaultAppsJson: () => electron.ipcRenderer.invoke("load-default-apps-json"),
  29. saveAppsJson: (appsJson) => electron.ipcRenderer.send("save-apps-json", appsJson),
  30. openWindow: (url) => electron.ipcRenderer.send("open-window", url),
  31. loadChildUrl: (url, aspectRatio) => electron.ipcRenderer.send("load-child-url", url, aspectRatio),
  32. toggleChildSide: (isSideOen) => electron.ipcRenderer.send("toggle-child-side", isSideOen),
  33. showConfig: () => electron.ipcRenderer.send("show-config"),
  34. showAbout: () => electron.ipcRenderer.send("show-about")
  35. });