【小结】Electron实际运用中的学习和问题

    技术2022-07-10  139

    生命周期图

    **一、主进程与渲染进程**

    electron 分为主进程和渲染进程, 主进程:Electron 运行 package.json 的 main 脚本的进程被称为主进程。 在主进程中运行的脚本通过创建web页面来展示用户界面。 一个 Electron 应用总是有且只有一个主进程。主进程中不能获取到浏览器的window对象。

    渲染进程:简单的说就是electron中的每个web页面

    1.主进程 每个 Electron 应用的入口文件。它控制着整个 App 的生命周期,从打开到关闭。 它也管理着系统原生元素比如菜单,菜单栏,Dock 栏,托盘等。 主进程负责创建 APP 的每个渲染进程。而且整个 Node API 都集成在里面。 创建窗口等系统事件都在主进程中进行,可以对创建的窗口进行多种配置。

    主进程常用的: app:控制整个 Electron 应用的生命周期。比如ready事件,当 Electron 完成初始化时会被触发。 如图,把创建窗口的方法放在其中执行 BrowserWindow:创建和控制应用的窗口 webContents:负责渲染和控制网页, 是 BrowserWindow 对象的一个属性 ipcMain:用于主进程中,和渲染进程通信的 渲染进程中常用的: ipcRenderer:用于渲染进程中,和主进程通信的 remote:可以方便你在渲染进程中直接调用主进程的方法 < webview >tag:可以载入外界的网页

    2.主进程与渲染进程

    主进程中可以调用底层所有的GUI的API,渲染进程则因为安全问题不能随意调用。 所以,如果要调用需要相互通讯,让主进程来调用。

    在页面中调用与 GUI 相关的原生 API 是不被允许的,因为在 web 页面里操作原生的 GUI 资源是非常危险的,而且容易造成资源泄露。 如果你想在 web 页面里使用 GUI 操作,其对应的渲染进程必须与主进程进行通讯,请求主进程进行相关的 GUI 操作。

    主进程和渲染进程进行通讯的时候,就需要用到 ipc 这个特性。而 ipc 又分为 ipcMain 和 ipcRenderer ,分别用于主进程和渲染进程。

    渲染器进程向主进程通讯 渲染器进程主要通过 ipcRenderer.send 发送异步消息,使用 ipcRenderer.on 事件监控主进程的返回值

    主进程使用ipcMain.on监听消息,监听获取后通过event.sender.send(相当于webContent.send)来发送一个事件。如果是同步可以通过evnet.returnValue来返回 在下面代码中,我通过页面按钮,触发了主进程中的maxsize事件 主进程收到了,发送reply事件给渲染进程,渲染进程监听到后,在控制台打印了主进程发过来的Ok

    想要详细的学习,还是官方文档最详细。
    Processed: 0.014, SQL: 9