Proses utama Electron menguruskan semua halaman web dan proses pemaparan yang sepadan, manakala proses pemaparan hanya boleh mengurus halaman web yang sepadan tidak akan menjejaskan proses pemaparan yang lain;
Elektron mempunyai dua proses: proses utama dan proses rendering.
Proses utama
2. Proses utama menguruskan semua halaman web dan proses pemaparan yang sepadan.
Proses Perenderan
1. Proses pemaparan hanya boleh mengurus halaman web yang sepadan Ranap satu proses pemaparan tidak akan menjejaskan pemaparan lain proses. 2. Proses pemaparan berkomunikasi dengan proses utama melalui IPC untuk melaksanakan operasi GUI pada halaman web. Memanggil API berkaitan GUI tempatan secara langsung daripada proses pemapar adalah terhad disebabkan oleh keselamatan dan kemungkinan kebocoran sumber.
const { BrowserWindow } = require('electron') const win = new BrowserWindow()
Untuk memanggil proses utama daripada proses pemaparan, sila gunakan modul IPC: Contohnya, sesuaikan fungsi penutupan tetingkap dalam mod tetingkap purify
1. 首先由主进程向渲染进程发送消息,告诉它窗口的id(开启了多个渲染进程);
win.once('ready-to-show', () => { win.webContents.send('init_win_id', win.id); win.show() });
2. 在渲染进程接收winid,并在关闭窗口时发送给主进程
//渲染进程监听init_win_id事件(自定义),将winid赋给全局变量winid let winid = ''; require('electron').ipcRenderer.on('init_win_id', (event, message) => { winid = message; }) // 关闭窗体 function closex(){ //渲染进程里把窗口id发给主进程 const { ipcRenderer } = require('electron') ipcRenderer.send('close_window', winid); }
3. 在主进程中接收需要关闭的渲染进程
// 主进程获取winid关闭窗体 ipcMain.on('close_window', (event, arg) => { //app.quit()单个窗口可以直接app.quit() //win.close(); // 1、接收渲染进程发来的窗口id let winid = arg; console.log(winid); // 2、通过id找到对应的BrowserWindow对象(win、win22),调用这个对象的close()关闭对应的窗口 BrowserWindow.fromId(winid).close(); })
Atas ialah kandungan terperinci Elektron menghasilkan klien muzik QQ - komunikasi antara proses utama dan proses rendering. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!