안녕하세요 여러분:
저는 electron
을 사용하여 편집기와 유사한 애플리케이션을 작성하고 있습니다. 애플리케이션의 메뉴 표시줄에 파일 저장 기능이 있습니다.
메뉴 표시줄은 메인 스레드에 있지만 저장 작업은 렌더링 스레드의 편집기에서 콘텐츠를 가져와야 하기 때문입니다. 공식 웹사이트에는 메인 스레드를 요청하는 렌더링 스레드의 예만 있습니다(ipcMain和ipcRenderer
),但是ipcMain
好像不能主动请求ipcRenderer
.
그래서 여러분께 묻고 싶습니다. 메인 스레드가 렌더링 스레드에 렌더링 스레드의 메서드를 호출하거나 렌더링 스레드의 이벤트를 트리거하도록 적극적으로 요청할 수 있는 방법은 무엇입니까?
감사합니다!
해결책을 찾았습니다 ^_^
ipcMain
和ipcRenderer
中同时监听两个相同名字的事件,然后在主线程中使用focusedWindow.webContents.send('save-file')
触发ipcRenderer
的save-file
事件,在ipcRenderer
的save-file
事件中请求ipcMain
的save-file
이벤트에 참여하고 해당 데이터를 가지고ipc메인:
으아악ipc렌더러:
으아악먼저 이벤트를 렌더링 스레드에 바인딩할 수 있습니다. 예를 들어
ipcRenderer.on('save', save);
,然后在用户点击菜单中的 Save 时触发这个事件,然后在save
함수에서 이벤트를 브로드캐스트하고 필요한 데이터를 전달할 수 있습니다.좀 복잡하지만 지금으로서는 생각나는 게 이게 전부입니다.