Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Elektron menghasilkan klien muzik QQ - komunikasi antara proses utama dan proses rendering

Elektron menghasilkan klien muzik QQ - komunikasi antara proses utama dan proses rendering

灭绝师太
Lepaskan: 2021-08-30 17:43:05
asal
2427 orang telah melayarinya

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 menghasilkan klien muzik QQ - komunikasi antara proses utama dan proses rendering

Elektron mempunyai dua proses: proses utama dan proses rendering.

Proses utama

1. Proses utama mencipta halaman web dengan mencipta contoh tetingkap pelayar. Setiap tika BrowserWindow menjalankan halaman web semasa proses pemaparannya Apabila tika BrowserWindow dimusnahkan, proses pemaparan yang sepadan juga akan ditamatkan.

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.


Komunikasi antara proses boleh dilakukan melalui modul Komunikasi Antara Proses (IPC): ipcMain dan ipcRenderer

Untuk mencipta tetingkap, hubungi Kelas BrowserWindow, tetapi hanya boleh digunakan dalam proses utama (main.js):

    const { BrowserWindow } = require('electron')
    const win = new BrowserWindow()
Salin selepas log masuk

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()
  });
Salin selepas log masuk

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);
	 
	}
Salin selepas log masuk

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();
   
        })
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan