Electron ipcRenderer 模塊

2021-01-27 15:55 更新

ipcRenderer 模塊是一個 EventEmitter 類的實例. 它提供了有限的方法,你可以從渲染進程向主進程發(fā)送同步或異步消息. 也可以收到主進程的響應.

查看 ipcMain 代碼例子.

消息監(jiān)聽

ipcRenderer 模塊有下列方法來監(jiān)聽事件:

ipcRenderer.on(channel, listener)

  • channel String
  • listener Function

監(jiān)聽 channel, 當有新消息到達,使用 listener(event, args...) 調用 listener .

ipcRenderer.once(channel, listener)

  • channel String
  • listener Function

為這個事件添加一個一次性 listener 函數(shù).這個 listener 將在下一次有新消息被發(fā)送到 channel 的時候被請求調用,之后就被刪除了.

ipcRenderer.removeListener(channel, listener)

  • channel String
  • listener Function

從指定的 channel 中的監(jiān)聽者數(shù)組刪除指定的 listener .

ipcRenderer.removeAllListeners([channel])

  • channel String (optional)

刪除所有的監(jiān)聽者,或者刪除指定 channel 中的全部.

發(fā)送消息

ipcRenderer 模塊有如下方法來發(fā)送消息:

ipcRenderer.send(channel[, arg1][, arg2][, ...])

  • channel String
  • arg (可選)

通過 channel 向主進程發(fā)送異步消息,也可以發(fā)送任意參數(shù).參數(shù)會被JSON序列化,之后就不會包含函數(shù)或原型鏈.

主進程通過使用 ipcMain 模塊來監(jiān)聽 channel,從而處理消息.

ipcRenderer.sendSync(channel[, arg1][, arg2][, ...])

  • channel String
  • arg (可選)

通過 channel 向主進程發(fā)送同步消息,也可以發(fā)送任意參數(shù).參數(shù)會被JSON序列化,之后就不會包含函數(shù)或原型鏈.

主進程通過使用 ipcMain 模塊來監(jiān)聽 channel,從而處理消息, 通過 event.returnValue 來響應.

注意: 發(fā)送同步消息將會阻塞整個渲染進程,除非你知道你在做什么,否則就永遠不要用它 .

ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])

  • channel String
  • arg (可選)

類似 ipcRenderer.send ,但是它的事件將發(fā)往 host page 的 <webview> 元素,而不是主進程.

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號