2. ipcRenderer

作者: Shmily落墨 | 来源:发表于2017-03-07 14:37 被阅读702次

    原文:https://github.com/electron/electron/blob/master/docs/api/ipc-renderer.md
    译者:Lin

    从渲染进程到主进程的异步通讯。

    进程:渲染进程

    ipcRenderer模块是一个EventEmitter类的实例。它提供少量的方法让你能够从渲染进程发送同步和一步的消息到主进程。你也可以收到主进程的回复。

    代码例子请查看ipcMain

    <h2 id="methods">方法</h2>

    ipcRenderer模块有以下监听事件和发送消息的方法:

    <h3 id="ipcRenderer-on"><code>ipcRenderer.on(channel, listener)</code></h3>

    • channel String类型
    • listener Function类型

    监听channel,当一个新消息送达listener将会被调用listener(event, args...)

    <h3 id="ipcRenderer-once"><code>ipcRenderer.once(channel, listener)</code></h3>

    • channel String类型
    • listener Function类型

    给事件添加一个一次性listener函数。这个listener只会在下一次一个消息送达channel时触发,触发后它就会被移除。

    <h3 id="ipcRenderer-removeListener"><code>ipcRenderer.removeListener(channel, listener)</code></h3>

    • channel String类型
    • listener Function类型

    通过指定的channel移除监听器数组中指定的listener

    <h3 id="ipcRenderer-removeAllListeners"><code>ipcRenderer.removeAllListeners([channel])</code></h3>

    • channel String类型(可选参数)

    移除所有监听起,或者channel中指定的那些监听器。

    <h3 id="ipcRenderer-send"><code>ipcRenderer.send(channel[, arg1][, arg2][, ...])</code></h3>

    • channel String类型
    • ...args any[]类型

    通过channel异步发送一个消息到主进程,你可以发送任意参数。参数将在JSON内部被联播,因此没有函数或者原型链被引用。

    主进程通过ipcMain模块监听channel来处理它。

    <h3 id="ipcRenderer-sendSync"><code>ipcRenderer.sendSync(channel[, arg1][, arg2][, ...])</code></h3>

    • channel String类型
    • ...args any[]类型

    通过channel同步发送一个消息到主进程,你可以发送任意参数。参数将在JSON内部被联播,因此没有函数或者原型链被引用。

    主进程通过ipcMain模块监听channel来处理它,并且通过设置event.returnValue来给予回复。

    注意:发送一个同步消息将会阻塞整个渲染进程,除非你知道你正在做什么,否则你永远不要用到这个接口。

    <h3 id="ipcRenderer-sendToHost"><code>ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])</code></h3>

    • channel String类型
    • ...args any[]类型

    ipcRenderer.send一样,但是事件将会被送到主页的<webview>元素而不是送到主进程。

    相关文章

      网友评论

        本文标题:2. ipcRenderer

        本文链接:https://www.haomeiwen.com/subject/uyemgttx.html