在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ electron主線程中通過mainWindow.webContents.sen

electron主線程中通過mainWindow.webContents.send發(fā)送事件,渲染線程接收不到

準(zhǔn)備實現(xiàn)的功能:
頁面1(渲染進程1)中點擊按鈕,發(fā)送事件給到主進程。主進程成功接收事件后,通過mainWindow.webContents.send發(fā)送事件event。在頁面2(渲染進程2)中通過ipcRender.on方法監(jiān)聽event,當(dāng)接收到event后,開始業(yè)務(wù)處理。

問題:
主進程成功接收到了頁面1(渲染進程1)發(fā)送的事件,隨后在主進程中通過mainWindow.webContents.send發(fā)送到事件event,頁面2(渲染進程2)并沒有收到。

代碼:

頁面1(渲染進程1):

const ipcRenderer = require('electron').ipcRenderer;

function playDanmu(){
    ipcRenderer.send('sigPlayDanmu', '123456');
};

主進程:

const ipcMain = require('electron').ipcMain;
ipcMain.on('sigPlayDanmu', (event, args) => {
    console.log('sigPlayDanmu is captured');
    mainWindow.webContents.send('ping', 'pong');
});

頁面2(渲染進程2):

    <script>
        require('electron').ipcRenderer.on('ping', (event, message) => {
            ...業(yè)務(wù)處理
        })
    </script>

是哪里的姿勢不對嗎?

所以想問一下大家,主線程怎么主動請求渲染線程調(diào)用渲染線程的方法或觸發(fā)渲染線程的事件呢?

謝謝!

回答
編輯回答
奧特蛋

在主線程中,調(diào)用webContents.send()方法的對象用錯了。
往哪個窗口對應(yīng)的渲染線程中發(fā)消息,就使用哪個窗口對象來調(diào)用。
上面改為page2WindowObject.webContents.send()就可以了

2017年6月27日 07:10