> 웹 프론트엔드 > 프런트엔드 Q&A > Electron은 QQ 음악 클라이언트-메인 프로세스 및 렌더링 프로세스 통신을 생산합니다.

Electron은 QQ 음악 클라이언트-메인 프로세스 및 렌더링 프로세스 통신을 생산합니다.

灭绝师太
풀어 주다: 2021-08-30 17:43:05
원래의
2401명이 탐색했습니다.

           Electron 기본 프로세스는 모든 웹 페이지와 해당 렌더링 프로세스를 관리하며, 렌더링 프로세스는 해당 웹 페이지만 관리할 수 있습니다. 한 렌더링 프로세스의 충돌은 다른 렌더링 프로세스에 영향을 미치지 않습니다.

Electron은 QQ 음악 클라이언트-메인 프로세스 및 렌더링 프로세스 통신을 생산합니다.

Electron에는 메인 프로세스와 렌더링 프로세스라는 두 가지 프로세스가 있습니다. ㅋㅋ                                                          . 각 BrowserWindow 인스턴스는 렌더링 프로세스 중에 웹 페이지를 실행합니다. BrowserWindow 인스턴스가 삭제되면 해당 렌더링 프로세스도 종료됩니다.

2. 기본 프로세스는 모든 웹 페이지와 해당 렌더링 프로세스를 관리합니다.染 렌더링 프로세스

1. 렌더링 프로세스는 해당 웹페이지만 관리할 수 있습니다. 렌더링 프로세스를 축소해도 다른 렌더링 프로세스에는 영향을 미치지 않습니다. 2. 렌더링 프로세스는 IPC를 통해 기본 프로세스와 통신하여 웹 페이지에서 GUI 작업을 수행합니다. 렌더러 프로세스에서 직접 로컬 GUI 관련 API를 호출하는 것은 보안 및 리소스 누수 가능성으로 인해 제한됩니다.

프로세스 간 통신은 IPC(프로세스 간 통신) 모듈인 ipcMain 및 ipcRenderer를 통해 수행할 수 있습니다.

창을 만들려면 BrowserWindow 클래스를 호출해야 하지만 기본 프로세스에서만 사용할 수 있습니다( main.js ):


    const { BrowserWindow } = require('electron')
    const win = new BrowserWindow()
로그인 후 복사

렌더링 프로세스에서 기본 프로세스를 호출하려면 IPC 모듈을 사용하세요. 예를 들어 창 정화 모드에서 창 닫기 기능을 사용자 정의하세요.

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();
   
        })
로그인 후 복사

위 내용은 Electron은 QQ 음악 클라이언트-메인 프로세스 및 렌더링 프로세스 통신을 생산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿