preload.mjs 850 B

123456789101112131415161718192021222324
  1. console.log("Preload script loaded");
  2. // import { contextBridge, ipcRenderer } from "electron";
  3. // 修改后的 preload.js
  4. const { contextBridge, ipcRenderer } = require("electron");
  5. // 使用 contextBridge 暴露渲染进程 API
  6. contextBridge.exposeInMainWorld("electronAPI", {
  7. // sendMessage: 用于发送消息到主进程
  8. sendMessage: (message) => {
  9. ipcRenderer.send("message", message);
  10. },
  11. // runPythonScript: 用于运行 Python 脚本
  12. runPythonExe: async (args) => {
  13. return await ipcRenderer.invoke("run-python-exe", args);
  14. },
  15. callPythonAPI: (apiName, params) =>
  16. ipcRenderer.invoke("run-python-exe", apiName, params),
  17. // 可以考虑增加更多的方法,如接收来自主进程的消息
  18. receiveMessage: (callback) => {
  19. ipcRenderer.on("response", (event, data) => {
  20. callback(data);
  21. });
  22. },
  23. });