摘要:主進(jìn)程在里,運(yùn)行里腳本的進(jìn)程被稱為主進(jìn)程。渲染進(jìn)程由于使用來展示頁面,所以的多進(jìn)程結(jié)構(gòu)也被充分利用。每個(gè)的頁面都在運(yùn)行著自己的進(jìn)程,這樣的進(jìn)程我們稱之為渲染進(jìn)程。在一般瀏覽器中,網(wǎng)頁通常會(huì)在沙盒環(huán)境下運(yùn)行,并且不允許訪問原生資源。
主進(jìn)程
渲染進(jìn)程在 Electron 里,運(yùn)行 package.json 里 main 腳本的進(jìn)程被稱為主進(jìn)程。在主進(jìn)程運(yùn)行的腳本可以以創(chuàng)建 web 頁面的形式展示 GUI。
由于 Electron 使用 Chromium 來展示頁面,所以 Chromium 的多進(jìn)程結(jié)構(gòu)也被充分利用。每個(gè) Electron 的頁面都在運(yùn)行著自己的進(jìn)程,這樣的進(jìn)程我們稱之為渲染進(jìn)程。
在一般瀏覽器中,網(wǎng)頁通常會(huì)在沙盒環(huán)境下運(yùn)行,并且不允許訪問原生資源。然而,Electron 用戶擁有在網(wǎng)頁中調(diào)用 Node.js 的 APIs 的能力,可以與底層操作系統(tǒng)直接交互。
主進(jìn)程與渲染進(jìn)程之間的通信可以從主進(jìn)程中直接發(fā)送消息給渲染進(jìn)程
//main.js //從主進(jìn)程發(fā)送消息給渲染進(jìn)程 mainWindow.webContents.send("main-process-messages", "main-process-messages show")
//index.html,渲染進(jìn)程中接收消息 const electron = require("electron") const ipcRenderer = electron.ipcRenderer ipcRenderer.on("main-process-messages", function(event, message){ alert(message) })
通過ipcRenderer和ipcMain進(jìn)行通信
這個(gè)是從渲染進(jìn)程中發(fā)起
//index.html,渲染進(jìn)程 onst electron = require("electron") const ipcRenderer = electron.ipcRenderer function sendTypeOne() { //向主進(jìn)程發(fā)送消息 ipcRenderer.send("MainMsgFromRender","hellow") } // 監(jiān)聽主進(jìn)程返回的消息 ipcRenderer.on("RenderMsgFromMain", function (event, arg) { alert(arg) })
//main.js const electron = require("electron") //主進(jìn)程 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,渲染進(jìn)程 const remote = require("electron").remote function sendTypeTwo() { alert(remote.getGlobal("sharedObject").newTel) }
做了一個(gè)小demo,可以下載看看了解更清楚。
demo
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/89314.html
摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:當(dāng)一個(gè)實(shí)例被銷毀后,相應(yīng)的渲染進(jìn)程也會(huì)被終止。之所以命名為,主要是為了與主進(jìn)程這個(gè)概念對(duì)應(yīng)。部分在事件觸發(fā)后才能使用。當(dāng)全部窗口關(guān)閉時(shí)退出。主進(jìn)程接收到消息并處理之后,會(huì)返回處理結(jié)果。 簡(jiǎn)介 Electron 是一個(gè)可以使用 Web 技術(shù)如 JavaScript、HTML 和 CSS 來創(chuàng)建跨平臺(tái)原生桌面應(yīng)用的框架。借助 Electron,我們可以使用純 JavaScript 來調(diào)用豐...
摘要:對(duì)于主進(jìn)程和渲染進(jìn)程之間的通信,使用是很方便的。但是渲染進(jìn)程之間呢哈哈,我這個(gè)碼農(nóng)看來又踩到一個(gè)坑了。方案一使用全局共享屬性但不具備事件機(jī)制,沒有實(shí)質(zhì)的通信功能。方案二利用主進(jìn)程做消息中轉(zhuǎn)此方案還是很好的。 菜鳥的 Electron 踩坑集錦。 對(duì)于 主進(jìn)程和渲染進(jìn)程之間的通信,使用 IPC 是很方便的。但是渲染進(jìn)程之間呢? 哈哈,我這個(gè)碼農(nóng)看來又踩到一個(gè)坑了。 方案一: 使用全局共享...
閱讀 3190·2021-10-14 09:42
閱讀 3569·2019-08-26 13:56
閱讀 3474·2019-08-26 11:59
閱讀 945·2019-08-23 18:00
閱讀 2211·2019-08-23 17:51
閱讀 3531·2019-08-23 17:17
閱讀 1485·2019-08-23 15:11
閱讀 5191·2019-08-23 15:05