这种方式的通信主要是依赖 electron 提供的 ipcMain 和ipcRenderer 两个模块。 关于通信分为以下几部分: 渲染进程发送同步/异步消息给主进程 主进程发送同步/异步消息给渲染进程 1. 渲染进程发送同步/异步消息给主进程 渲染进程依赖 ipcRenderer 模块给主进程发送消息,官方提供了三个方法:
通过 preload.js,我们可以将本地 API 的访问封装起来,并通过 contextBridge 暴露给前端。 const{ contextBridge, ipcRenderer } =require('electron'); contextBridge.exposeInMainWorld('electronAPI', {sendMessage:(channel, data) =>{constvalidChannels = ['toMain'];if(validChannels.includes(channel)) {ipc...
project/ ├── main │ ├── helper.js │ └── index.js ├── package.json └── renderer └── index.js remote模块提供的主进程与渲染进程通信方法比ipcMain/ipcRenderer更加易于使用。 // 主进程: main/index.js const { app } = require("electron"); app.on("ready", () => { ...
渲染进程向主进程发送同步消息,使用 electron.ipcRenderer.sendSync 方法,这个方法的返回值是从主进程中返回的,在渲染进程render.js中向主进程发送消息: 01 02 03 04 const electron = require("electron"); // 发送同步消息 const replayMessage = electron.ipcRenderer.sendSync("render-to-main-message-sync",...
入门学习electron时了解到,渲染进程与主进程存在一对多的关系, 渲染进程与主进程需要通过ipc或remote进行通信。因为ipc的使用类似websocket, 发送和监听分离到两个独立的接口且渲染进程与主进程的接口存在不小的差异。 所以使用时存在几个比较麻烦的点: 1. 对于类似http的请求模式,接收和发送逻辑存在割裂。 2. 手动指定...
这里的contextBridge是用来向渲染进程暴露变量/常量和函数的方法,在下面的部分详细介绍;ipcRenderer是Preload脚本用来和主进程进行IPC通信的工具,我们详细看看剩下几个是干嘛的 crashReporter 将崩溃日志提交给远程服务器https://www.electronjs.org/zh/docs/latest/api/crash-reporter ...
electron.ipcRenderer.on("main-to-render-message", (event, message) => { alert(message); }); 2.2 渲染进程向主进程发送同步消息 同步消息是渲染进程向主进程发送的,因为渲染进程页面可以有多个,而主进程node进程只有一个,因此...
//允许vue项目使用 ipcRenderer 接口, 演示项目中没有使用此功能const { contextBridge, ipcRenderer } = require('electron');contextBridge.exposeInMainWorld('ipcRender', ipcRenderer);4)修改package.json:当前示例代码如下:1)修改"main"配置,将其指向为"main": "electron/main.js";2)增加一个针对 ...
//允许vue项目使用 ipcRenderer 接口, 演示项目中没有使用此功能 const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('ipcRender', ipcRenderer); 4、修改package.json,当前示例代码如下: 修改"main"配置,将其指向为"main": "electron/main.js" ...
跨进程通信:使用ipcMain和ipcRenderer实现主进程与渲染进程数据交互,例如文件选择对话框的异步回调处理916。2. AI能力集成 本地模型部署:将PyTorch训练的模型转换为ONNX格式,通过onnxruntime-node在Electron中加载推理,实现离线智能问答(如本地知识库检索)58。云端API调用:Javascript // 调用GPT-4生成文本...