node.js - 關(guān)于electron主線程與渲染線程通信的問題(Menubar事件如何從渲染線程獲取數(shù)據(jù))
問題描述
大家好:
我在用electron寫一個(gè)類似編輯器的應(yīng)用,在應(yīng)用的菜單欄中一項(xiàng)保存文件功能:
因?yàn)椴藛螜谑窃谥骶€程中的,但是保存操作需要獲取渲染線程中一個(gè)編輯器里面的內(nèi)容.官網(wǎng)只有渲染線程請(qǐng)求主線程的例子(ipcMain和ipcRenderer),但是ipcMain好像不能主動(dòng)請(qǐng)求ipcRenderer.
所以想問一下大家,主線程怎么主動(dòng)請(qǐng)求渲染線程調(diào)用渲染線程的方法或觸發(fā)渲染線程的事件呢?
謝謝!
問題解答
回答1:找到解決方法了 ^_^
在ipcMain和ipcRenderer中同時(shí)監(jiān)聽兩個(gè)相同名字的事件,然后在主線程中使用focusedWindow.webContents.send(’save-file’)觸發(fā)ipcRenderer的save-file事件,在ipcRenderer的save-file事件中請(qǐng)求ipcMain的save-file事件并攜帶相應(yīng)的數(shù)據(jù)就好了
ipcMain:
ipcMain.on(’save-file’ ,(event ,arg) => { console.log(arg)})
ipcRenderer:
ipcRenderer.on(’save-file’ ,(event ,arg) => { ipcRenderer.send(’save-file’ ,’test’)})回答2:
你可以先給渲染線程綁定一個(gè)事件,比如說 ipcRenderer.on(’save’, save);,然后在用戶點(diǎn)擊菜單中的 Save 時(shí)觸發(fā)這個(gè)事件,然后在 save 函數(shù)里再?gòu)V播事件,并且傳出來你需要的數(shù)據(jù)。
有點(diǎn)繞,不過暫時(shí)只能想到這樣。
相關(guān)文章:
1. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?2. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????3. require后不用使用echo返回到微信服務(wù)器 嗎4. nginx - 如何將wordpress系統(tǒng)放在二級(jí)域名下5. javascript - 請(qǐng)問要如何修改 Node 的透明度嗎?6. javascript - 求助,nodeJS和koa2文檔對(duì)新手小白太不友好,一臉懵逼。。。7. css3 background顯示圖片的一部分8. vim中編輯HTML文件時(shí)換行不能縮進(jìn)9. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)10. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)
