diff --git a/main/event/message.js b/main/event/message.js
index e55ef2a..745ba99 100644
--- a/main/event/message.js
+++ b/main/event/message.js
@@ -96,7 +96,41 @@ function createWindowTrans() {
});
}
+function getSyncMsg() {
+ ipcMain.on('sync-render', (event, data) => {
+ console.log(data);
+ event.sender.send('main-msg', '主进程收到了渲染进程的【异步】消息!')
+ });
+}
+
+function getAsyncMsg() {
+ ipcMain.on('async-render', (event, data) => {
+ console.log(data);
+ event.returnValue = '主进程收到了渲染进程的【同步】消息!';
+ });
+}
+
+function sendMsg() {
+ let i = 0;
+ const mainWindow = BrowserWindow.fromId(global.mainId);
+ ipcMain.on('start-msg', (event, data) => {
+ console.log('开始定时向渲染进程发送消息!');
+ global.sendMsg = true;
+ });
+
+ ipcMain.on('end-msg', (event, data) => {
+ console.log('结束向渲染进程发送消息!');
+ global.sendMsg = false;
+ });
+
+ setInterval(() => {
+ if (global.sendMsg) {
+ mainWindow.webContents.send('main-msg', `ConardLi【${i++}】`)
+ }
+ }, 200);
+
+}
export default function handleMessage() {
@@ -107,4 +141,7 @@ export default function handleMessage() {
createNoBarWindowWithButton();
createWindowDrag();
createWindowTrans();
+ getSyncMsg();
+ getAsyncMsg();
+ sendMsg();
}
\ No newline at end of file
diff --git a/render/component/Nav/index.js b/render/component/Nav/index.js
index 4b6543c..d641f18 100644
--- a/render/component/Nav/index.js
+++ b/render/component/Nav/index.js
@@ -43,6 +43,9 @@ class Nav extends Component {
-
窗口
+ -
+ 进程通信
+
-
弹框
diff --git a/render/routes/index.js b/render/routes/index.js
index 1a698e2..49c00d0 100644
--- a/render/routes/index.js
+++ b/render/routes/index.js
@@ -9,6 +9,7 @@ import System from '$views/System';
import Print from '$views/Print';
import Shell from '$views/Shell';
import MenuView from '$views/MenuView';
+import IPC from '$views/IPC';
export default class RouteContent extends Component {
render() {
@@ -23,6 +24,7 @@ export default class RouteContent extends Component {
+
);
diff --git a/render/views/IPC/index.css b/render/views/IPC/index.css
new file mode 100644
index 0000000..a12d9a4
--- /dev/null
+++ b/render/views/IPC/index.css
@@ -0,0 +1,8 @@
+.demoContainer {
+ width: 50%;
+ margin: 0 auto;
+}
+
+.margin {
+ margin-top: 15px;
+}
\ No newline at end of file
diff --git a/render/views/IPC/index.js b/render/views/IPC/index.js
new file mode 100644
index 0000000..3cfce07
--- /dev/null
+++ b/render/views/IPC/index.js
@@ -0,0 +1,57 @@
+import React from 'react';
+import { Button, Alert } from 'antd';
+import styles from './index.css';
+import { ipcRenderer } from 'electron';
+
+
+class IPC extends React.Component {
+
+ constructor(props) {
+ super(props);
+ this.state = {
+ msg: ''
+ }
+ }
+
+ componentDidMount() {
+ ipcRenderer.on('main-msg', (event, msg) => {
+ this.setState({ msg })
+ })
+ }
+
+ handleSendSync = () => {
+ ipcRenderer.send('sync-render', '我是来自渲染进程的异步消息');
+ }
+
+ handleSendAsync = () => {
+ const msg = ipcRenderer.sendSync('async-render', '我是来自渲染进程的同步消息');
+ this.setState({ msg })
+ }
+
+ handleStart = () => {
+ ipcRenderer.send('start-msg');
+ }
+
+ handleEnd = () => {
+ ipcRenderer.send('end-msg');
+ }
+
+
+ render() {
+ const { msg } = this.state;
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default IPC;
\ No newline at end of file