electron渲染進(jìn)程主進(jìn)程相互傳值示例解析
在electron中分為渲染進(jìn)程和主進(jìn)程
渲染進(jìn)程就是瀏覽器環(huán)境,主進(jìn)程就是node環(huán)境
既然他們是不同的環(huán)境,那么為我們?cè)趺醋屗麄兿嗷リP(guān)聯(lián)起來(lái)呢?或者說(shuō)怎么傳遞值? 畢竟在開(kāi)發(fā)中可能會(huì)遇到我想要的值只能在node環(huán)境中才能獲取,然后node中可能也會(huì)需要瀏覽器環(huán)境的值;這個(gè)時(shí)候就需要兩個(gè)環(huán)境聯(lián)通起來(lái)相互傳值
瀏覽器傳值給主進(jìn)程
瀏覽器環(huán)境
引入:
import { ipcRenderer } from "electron";
使用:
ipcRenderer.send("reader-json-file", '123');
主進(jìn)程
引入:
import { ipcMain } from "electron";
使用:
ipcMain.on('reader-json-file',(event, num)=>{
console.log(num); // 123 (字符串類型)
})
完成以上的操作我們就可以在主進(jìn)程中獲取到渲染進(jìn)程傳遞過(guò)來(lái)的值了
主進(jìn)程傳值給渲染進(jìn)程
在這個(gè)的時(shí)候跟以上有一點(diǎn)點(diǎn)差異,這個(gè)是需要拿到你創(chuàng)建這個(gè)窗口(主進(jìn)程的變量值),然后將其傳值給他,并在渲染進(jìn)程中接收
主進(jìn)程
使用:
win.webContents.send('reader-json-file-data','456');
這兒的win是你在創(chuàng)建窗口時(shí)的變量,如下:
win = new BrowserWindow({
width: 1000,
height: 600,
minWidth: 800,
minHeight: 600,
// 不要邊框
frame: false,
webPreferences: {
webviewTag: true,
// 禁止同源策略,避免 axios 無(wú)法使用
webSecurity: false,
// Required for Spectron testing
enableRemoteModule: !!process.env.IS_TEST,
nodeIntegration: true,
contextIsolation: false
// Use pluginOptions.nodeIntegration, leave this alone
// See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
// nodeIntegration: (process.env
// .ELECTRON_NODE_INTEGRATION as unknown) as boolean,
// contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
}
})
渲染進(jìn)程
在vue中的話:可以在生命周期mounted、created中監(jiān)聽(tīng)
ipcRenderer.on("reader-json-file-data", (event, value) => {
console.log(value); // 456 (字符串類型)
});
注意
渲染進(jìn)程和主進(jìn)程相互傳值可以是任意類型(我這邊測(cè)試過(guò)可以傳遞的值,布爾、數(shù)字、字符串、對(duì)象都是可以的),我這邊只是做了一個(gè)演示,所以就是傳遞了一個(gè)字符串類型的數(shù)字;
以上就是electron渲染進(jìn)程主進(jìn)程相互傳值示例解析的詳細(xì)內(nèi)容,更多關(guān)于electron進(jìn)程渲染傳值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JS實(shí)現(xiàn)一個(gè)微信錄音功能過(guò)程示例詳解
這篇文章主要介紹了JS實(shí)現(xiàn)一個(gè)微信錄音功能過(guò)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
微信小程序 ecshop地址三級(jí)聯(lián)動(dòng)實(shí)現(xiàn)實(shí)例代碼
這篇文章主要介紹了微信小程序 ecshop地址3級(jí)聯(lián)動(dòng)實(shí)現(xiàn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
axios?攔截器管理類鏈?zhǔn)秸{(diào)用手寫(xiě)實(shí)現(xiàn)及原理剖析
這篇文章主要為大家介紹了axios?攔截器管理類鏈?zhǔn)秸{(diào)用手寫(xiě)實(shí)現(xiàn)及原理剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
JavaScript高級(jí)程序設(shè)計(jì)之變量與作用域
這篇文章主要介紹了JavaScript高級(jí)程序設(shè)計(jì)之變量與作用域,文章主要通過(guò)描述原始值與引用值、instanceof、作用域展開(kāi)具體內(nèi)容,需要的朋友可以參考一下2021-11-11

