资讯专栏INFORMATION COLUMN

electron进程与进程之间的通信

sihai / 2353人阅读

摘要:主进程在里,运行里脚本的进程被称为主进程。渲染进程由于使用来展示页面,所以的多进程结构也被充分利用。每个的页面都在运行着自己的进程,这样的进程我们称之为渲染进程。在一般浏览器中,网页通常会在沙盒环境下运行,并且不允许访问原生资源。

主进程

在 Electron 里,运行 package.json 里 main 脚本的进程被称为主进程。在主进程运行的脚本可以以创建 web 页面的形式展示 GUI。

渲染进程

由于 Electron 使用 Chromium 来展示页面,所以 Chromium 的多进程结构也被充分利用。每个 Electron 的页面都在运行着自己的进程,这样的进程我们称之为渲染进程。

在一般浏览器中,网页通常会在沙盒环境下运行,并且不允许访问原生资源。然而,Electron 用户拥有在网页中调用 Node.js 的 APIs 的能力,可以与底层操作系统直接交互。

主进程与渲染进程之间的通信

可以从主进程中直接发送消息给渲染进程

//main.js
//从主进程发送消息给渲染进程

mainWindow.webContents.send("main-process-messages", "main-process-messages show")
//index.html,渲染进程中接收消息
const electron = require("electron")
const ipcRenderer = electron.ipcRenderer
ipcRenderer.on("main-process-messages", function(event, message){
    alert(message)
})

通过ipcRenderer和ipcMain进行通信

这个是从渲染进程中发起

//index.html,渲染进程
onst electron = require("electron")
const ipcRenderer = electron.ipcRenderer
function sendTypeOne() {
    //向主进程发送消息
    ipcRenderer.send("MainMsgFromRender","hellow")
}

// 监听主进程返回的消息
ipcRenderer.on("RenderMsgFromMain", function (event, arg) {
    alert(arg)
})
//main.js
const electron = require("electron")
//主进程
const ipcMain = electron.ipcMain
ipcMain.on("MainMsgFromRender",function (event, arg) {
    console.log(arg)
    event.sender.send("RenderMsgFromMain",arg)
})

通过全局变量

//main.js
global.sharedObject = {
    newTel: "000"
}
//index.html,渲染进程
const remote = require("electron").remote
function sendTypeTwo() {
    alert(remote.getGlobal("sharedObject").newTel)
}

做了一个小demo,可以下载看看了解更清楚。
demo

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89314.html

相关文章

  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    winterdawn 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    aervon 评论0 收藏0
  • Electron】酷家乐客户端开发实践分享 — 进程通信

    摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    Wuv1Up 评论0 收藏0
  • Electron 快速入门

    摘要:当一个实例被销毁后,相应的渲染进程也会被终止。之所以命名为,主要是为了与主进程这个概念对应。部分在事件触发后才能使用。当全部窗口关闭时退出。主进程接收到消息并处理之后,会返回处理结果。 简介 Electron 是一个可以使用 Web 技术如 JavaScript、HTML 和 CSS 来创建跨平台原生桌面应用的框架。借助 Electron,我们可以使用纯 JavaScript 来调用丰...

    Drummor 评论0 收藏0
  • Electron 渲染进程之间通信

    摘要:对于主进程和渲染进程之间的通信,使用是很方便的。但是渲染进程之间呢哈哈,我这个码农看来又踩到一个坑了。方案一使用全局共享属性但不具备事件机制,没有实质的通信功能。方案二利用主进程做消息中转此方案还是很好的。 菜鸟的 Electron 踩坑集锦。 对于 主进程和渲染进程之间的通信,使用 IPC 是很方便的。但是渲染进程之间呢? 哈哈,我这个码农看来又踩到一个坑了。 方案一: 使用全局共享...

    trilever 评论0 收藏0

发表评论

0条评论

sihai

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<