在 Electron 里,运行 package.json 里 main 脚本的进程被称为主进程。在主进程运行的脚本能够以建立 web 页面的形式展现 GUI。html
因为 Electron 使用 Chromium 来展现页面,因此 Chromium 的多进程结构也被充分利用。每一个 Electron 的页面都在运行着本身的进程,这样的进程咱们称之为渲染进程。git
在通常浏览器中,网页一般会在沙盒环境下运行,而且不容许访问原生资源。然而,Electron 用户拥有在网页中调用 Node.js 的 APIs 的能力,能够与底层操做系统直接交互。github
//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进行通讯web
这个是从渲染进程中发起
//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,能够下载看看了解更清楚。
demojson