From 5366601bb21f4d32ab7617ff4050778363708b1d Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Mon, 21 Oct 2024 11:31:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 5 +++++ preload.js | 8 ++++++++ src/page/Meeting/ShareScreenWindow/index.tsx | 6 ++++++ src/page/Meeting/index.tsx | 10 ++++++---- src/render.d.ts | 2 ++ 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/main.js b/main.js index cfc8957..d921379 100644 --- a/main.js +++ b/main.js @@ -367,6 +367,11 @@ app.on('ready', () => { ipcMain.handle('mainWindowCenter', () => { mainWindowCenter() }); + ipcMain.handle('windowHandleMessage', (event, data) => { + if (childWindow[data.key]) { + childWindow[data.key].webContents.send('windowHandleMessageCallBack', data) + } + }); } }); // 检测更新,在你想要检查更新的时候执行,renderer事件触发后的操作自行编写 diff --git a/preload.js b/preload.js index 20db99d..ba34b71 100644 --- a/preload.js +++ b/preload.js @@ -105,4 +105,12 @@ window.electron = { mainWindowCenter: () => { ipcRenderer.invoke('mainWindowCenter') }, + // 窗口通信传参 + windowHandleMessage: (data) => { + ipcRenderer.invoke('windowHandleMessage', data) + }, + // 窗口通信回调 + windowHandleMessageCallBack: (callback) => { + ipcRenderer.on('windowHandleMessageCallBack', callback) + }, } diff --git a/src/page/Meeting/ShareScreenWindow/index.tsx b/src/page/Meeting/ShareScreenWindow/index.tsx index 755f202..c9b0c01 100644 --- a/src/page/Meeting/ShareScreenWindow/index.tsx +++ b/src/page/Meeting/ShareScreenWindow/index.tsx @@ -88,6 +88,12 @@ const ShareScreenWindow: React.FC = () => { channel.postMessage({ type: 'shareScreenWindowGetTime' }); + window.electron.windowHandleMessageCallBack((_e: any, data: any) => { + let domMe = document.getElementById(`micr-item-${userInfo.uid}`) as HTMLDivElement; + if (domMe) { + domMe.style.height = `${data.parmes.currentSpeakUserMe}%` + } + }) return () => { clearInterval(timeout) channel.close(); diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 7a07382..4dbe7c0 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -960,10 +960,12 @@ const Meeting: React.FC = () => { if (domMe && !item.uid) { const percentage = (item.volume / 255) * 100 domMe.style.height = `${percentage}%` - channel.postMessage({ - type: 'currentSpeakUserMe', - currentSpeakUserMe: percentage, - }); + window.electron.windowHandleMessage({ + key: 'shareScreenWindow', + parmes: { + currentSpeakUserMe: percentage, + } + }) } }); } diff --git a/src/render.d.ts b/src/render.d.ts index 597739c..3be8a2c 100644 --- a/src/render.d.ts +++ b/src/render.d.ts @@ -26,6 +26,8 @@ export interface IElectronAPI { closeChildWindow: (key: string) => void; mainWindowCenter: () => any; mainWindowHide: () => any; + windowHandleMessage: (data: any) => {} + windowHandleMessageCallBack: (callBack: Function) => void; } declare global {