在 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