說明:
自主到從:從main到renderer的訊息傳遞,借助browerwindow.webcontents.send()傳送訊息。
自從到主:從renderer到main的訊息傳遞,借助ipcrender和ipcmain傳送/接收訊息。
事件機制:無論是browerwindow.webcontents.send(),還是ipc,其實都是node的事件機制,都是eventemitter的例項。
主程序let win = null
win = new browserwindow()
win.loadurl(`file:
//$/index.html`)
win.webcontents.on('did-finish-load', () =>)
})index.html
<index.htmlhtml
>
<
body
>
<
script
>
require(
'electron
').ipcrenderer.on(
'ping
', (event, message)
=>)
script
>
body
>
html
>
doctype html主程序>
<
html
lang
="en"
>
<
head
>
<
title
title
>
head
>
<
body
>
<
input
type
=""name
=""id
="ipt"
value
="">
<
button
type
="button"
onclick
="connectmain()"
>和主程序通訊
button
>
<
script
>
const ipc
=require(
'electron
').ipcrenderer;
vaript
=document.getelementbyid(
'ipt')
function
connectmain()
script
>
body
>
html
>
const ipc = require('electron').ipcmain例子,在主程序和渲染程序之間傳送和處理訊息:ipc.on('getmsg', (sys, msg) =>)
(過程:渲染程序發訊息->主程序接收訊息並回覆->渲染程序接收主程序的回覆)
渲染程序:
//主程序:in renderer process (web page).
const ipcrenderer = require('electron').ipcrenderer;
console.log(ipcrenderer.sendsync('synchronous-message', 'ping')); //
prints "pong" 傳送同步訊息
ipcrenderer.on('asynchronous-reply', function(event, arg) );
ipcrenderer.send('asynchronous-message', 'ping'); //
傳送非同步訊息
//參考:in main process.
const ipcmain = require('electron').ipcmain;
ipcmain.on('asynchronous-message', function(event, arg) );
ipcmain.on('synchronous-message', function(event, arg) );
參考官網:
electron主程序通訊渲染程序
可以先去看看之前的 主程序即electron的main.js。渲染程序即browserwindow物件新建的。定義乙個js檔案這裡就叫renderer吧,在全域性定義乙個electron物件用來進行與html進行訂閱事件通訊。global.electron require electron 在bro...
electron 3 主程序與渲染程序
渲染程序不能直接引入browserwindow模組 借助remote模組,從remote中拿到主程序允許使用的模組 const require electron remote let btn document.queryselector btn btn.onclick function index....
主程序和渲染程序
chromium每個tab都是乙個程序 主程序 main process 可以使用和系統對接的api,建立選單,上傳檔案等等 建立渲染程序 全面支援node.js 只有乙個,作為整個程式的入口點 渲染程序 main process 可以有多個,每個對應乙個視窗 每個都是單獨的程序 全面支援node....