三. 主進(jìn)程和渲染進(jìn)程之間的通信
electron框架主進(jìn)程(Main Process)與嵌入的網(wǎng)頁(web page店茶,也就是renderer process)之間的通信.
為什么需要通信呢?
因?yàn)閑lectron的機(jī)制就是這樣的,electron的API分為三種類別,一類是只能在主進(jìn)程上用的, 一類是在渲染進(jìn)程上用的, 最后的就是可以在兩種進(jìn)程上都可以用的.
接下來看具體實(shí)現(xiàn):
1.Main.js( 主 )里添加代碼:
<pre>//通信模塊,mian process與renderer process(web page)
const {ipcMain} = require('electron')
//監(jiān)聽web page里發(fā)出的message
ipcMain.on('asynchronous-message', (event, arg) => { console.log("mian1" + arg)
// prints "ping"
//event.sender.send('asynchronous-reply', 'pong')
//在main process里向web page發(fā)出message
})
ipcMain.on('synchronous-message', (event, arg) => { console.log("mian2" + arg)
)}
// prints "ping" event.returnValue = 'pong'
</pre>
2.web page( 渲染進(jìn)程index.html和testp.js index.html要引用testp.js哦 )里添加代碼:
<pre>const {ipcRenderer} = require('electron')
//監(jiān)聽mian process里發(fā)出的message
function init (){
ipcRenderer.on('asynchronous-reply', (event, arg) => {
// alert("web2" + arg);
// prints "pong" 在electron中web
// page里的console方法不起作用残黑,因此使用alert作為測試方法
})
}
//在web page里向main process發(fā)出message
function say(){
ipcRenderer.send('asynchronous-message', 'ping')
// prints "pong"
// ipcRenderer.sendSync('synchronous-message', 'ping')
// prints "pong"
// alert("web1" + 'ping');
}</pre>
3.html里添加代碼:
在body標(biāo)簽里添加 onload = init()事件
<body onload =' init() '>
在頁面里添加個(gè)按鈕,添加點(diǎn)擊監(jiān)聽事件
<button onclick='say()'></button>
<pre><!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>我的世界</title>
</head>
<body onload =' init() '>
<p>Hello World</p>
<button onclick='say()'>點(diǎn)我</button>
</body>
</html></pre>
4.最后效果自己看!!!!!!!!
文章記得分享哦~
一天一更
如有需要,請點(diǎn)個(gè)關(guān)注... --> web魔集