From 6ec184a2ce700489d1dbe3cb87c3c1e59b3f1039 Mon Sep 17 00:00:00 2001 From: "jinhai.wang" Date: Sun, 11 Oct 2015 13:52:06 +0800 Subject: [PATCH 1/2] add new file: ipc-main-process.md --- .../zh-CN/api/ipc-main-process.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docs-translations/zh-CN/api/ipc-main-process.md diff --git a/docs-translations/zh-CN/api/ipc-main-process.md b/docs-translations/zh-CN/api/ipc-main-process.md new file mode 100644 index 000000000000..1655a1aa5b1d --- /dev/null +++ b/docs-translations/zh-CN/api/ipc-main-process.md @@ -0,0 +1,68 @@ +# ipc (主进程) + +在主进程使用`ipc`模块时,`ipc`负责捕获从渲染进程(网页)发送的同步或者是异步消息. + +## 发送消息 + +主进程也可以向渲染进程发送信息,具体可以看[WebContents.send](web-contents.md#webcontentssendchannel-args). + +- 当发送消息的时候,事件名字为'channel'. +- 回复一个同步消息的时候,你需要使用`event.returnValue` +- 回复一个异步消息的时候,使用`event.sender.send(...)` + +下面是一个主进程和渲染进程的通信例子. + +```javascript +// 在主进程中. +var ipc = require('ipc'); +ipc.on('asynchronous-message', function(event, arg) { + console.log(arg); // 打印 "ping" + event.sender.send('asynchronous-reply', 'pong'); +}); + +ipc.on('synchronous-message', function(event, arg) { + console.log(arg); // 打印 "ping" + event.returnValue = 'pong'; +}); +``` + +```javascript +// 在渲染进程(网页). +var ipc = require('ipc'); +console.log(ipc.sendSync('synchronous-message', 'ping')); // 打印 "pong" + +ipc.on('asynchronous-reply', function(arg) { + console.log(arg); // 打印 "pong" +}); +ipc.send('asynchronous-message', 'ping'); +``` + +## 监听消息 + +`ipc`模块有下列几种方法来监听事件. + +### `ipc.on(channel, callback)` + +* `channel` - 事件名称. +* `callback` - 回调函数. + +当事件发生的时候,会传入`callback` `event`和`arg`参数. + +## IPC 事件 + +传入`callback`的`event`对象含有下列方法. + +### `Event.returnValue` + +在同步消息中,设置这个值将会被返回. + +### `Event.sender` + +返回一个可以发送消息的`WebContents`. + +### `Event.sender.send(channel[.arg1][,arg2][,...])` + +* `channel` - 事件名称. +* `arg` (选用) + +这个可以发送一个可带参数的异步消息回渲染进程. From bd95be23f3a8f29208e757564fce880a0f2129f6 Mon Sep 17 00:00:00 2001 From: "jinhai.wang" Date: Sun, 11 Oct 2015 14:56:23 +0800 Subject: [PATCH 2/2] fix docs-translations/zh-CN/api ipc-main-process.md '' -> bug --- docs-translations/zh-CN/api/ipc-main-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-translations/zh-CN/api/ipc-main-process.md b/docs-translations/zh-CN/api/ipc-main-process.md index 1655a1aa5b1d..75d5785b2e5f 100644 --- a/docs-translations/zh-CN/api/ipc-main-process.md +++ b/docs-translations/zh-CN/api/ipc-main-process.md @@ -6,7 +6,7 @@ 主进程也可以向渲染进程发送信息,具体可以看[WebContents.send](web-contents.md#webcontentssendchannel-args). -- 当发送消息的时候,事件名字为'channel'. +- 当发送消息的时候,事件名字为`channel`. - 回复一个同步消息的时候,你需要使用`event.returnValue` - 回复一个异步消息的时候,使用`event.sender.send(...)`