Electron第二篇--进程通信

前言

在使用Electron开发过程中,渲染进程的开发变得很简单。大部分样式与业务逻辑都可用熟悉的前端技术来实现。但不可避免有些时候,渲染进程要与主进程通信。今天,我们就来聊聊主进程与渲染进程。

什么是主进程Main Process

​通常,在主进程中运行的脚本控制应用程序的生命周期、显示图形用户界面及其元素、执行本机操作系统交互以及在网页中创建渲染进程。Electron 应用程序只能有一个主进程。

简单来说,主进程控制着整个应用程序的载体与所有渲染进程,假如你想执行应用程序关闭,最小化,窗口置顶等功能,就需要在主进程中操作啦。

什么是渲染进程Renderer Process

渲染进程就是我们的应用程序窗口。可以创建多个浏览器窗口,每个窗口都使用自己的独立渲染进程。渲染进程,就是我们通常进行前端开发的地方了

主进程与渲染进程通信

Electron中模块分为三种Main Process模块、Renderer Process模块和两种进程都可用模块。

事件监听

主线程中的模块方法,渲染进程是无法直接调用的。因此最常用的方法就是通过主进程中的ipcMain模块进行事件监听

1.png
在渲染进程通过ipcRenderer中的send方法进行事件发送

2.png

以此来实现渲染进程调用主进程中的方法。

模块调用

还有一种情况,就是我们不能仅靠事件监听来处理通信,我们想直接在渲染进程拿到主进程模块操作。说一个场景吧,就是cookie。

用Electron开发应用程序,对于cookie的操作不能再使用js-cookie了。主进程中有个叫做session的模块,通过session模块可以操作cookie。

在渲染进程中进行http请求,想对cookie进行get、set、remove。难道我还要在主进程中写上几个事件监听,渲染进程写上几个事件监听来回调用么?那绝对是反人类。

还好Electron中有一个remote模块。可在渲染进程中使用主进程模块。这对于渲染进程和主进程通信提供了一种简单方法。在使用remote模块之前,需要将webPreferences中的enableRemoteModule设置为true,以此来开启remote模块。

3.png

随后,我们就可以通过

let session = require('electron').remote.session;

拿到session模块了。具体的cookie如何操作以及cookie对象都有什么字段,都可以在官网文档中找到答案。

总结

以上,介绍了渲染进程如何调用主进程。同样主进程也可调用渲染进程。同样多种方式,如何操作可以查阅官网。
p.s. 最好在官网上查看文档,网上的其他文档可能都不知道是哪个版本的。一位当时看了网上的中文文档而不知何时callback被改成promise的受害者如是说道。

如果您对我们的文章有兴趣,欢迎关注我们的微信公众号,上面有最新最全的文章。

联系我们

1024创新实验室

1024Lab官方微信号(加我拉你入群!):

1024创新实验室 公众号

公众号二维码-12com.jpg

捐赠
开源不易,感谢捐赠
赞赏码.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六边形工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值