main.js
function createOtherWin(){
const newURL = './src/otherWin/otherWin.html';
let displays = electron.screen.getAllDisplays();
console.log(displays);
let externalDisplay = displays.find((display) => {
return display.bounds.x !== 0 || display.bounds.y !== 0
})
console.log(externalDisplay)
if (externalDisplay) {
newWindow = new BrowserWindow({
fullscreen:true,
x: externalDisplay.bounds.x,
y: externalDisplay.bounds.y,
webPreferences: {
nodeIntegration: true,
}
})
newWindow.loadFile(newURL);
newWindow.on('closed', () => { //这一段放外面的话,如果你电脑没双屏会报错。
newWindow = null
})
//主进程监听事件
ipcMain.on('send-card', (event, obj) => {
newWindow.webContents.send('sendWebsock', obj);
})
ipcMain.on('sendError', (event, res) => {
newWindow.webContents.send('sendErrorData', res);
})
}
}
app.on('ready', ()=>{
createWindow();
createOtherWin();
})
屏幕之间的通信的话用主进程与渲染进程通信的方式很好解决(main.js/ipcMain),
渲染进程
ipcRenderer.send('send-card', obj)
触发主进程的send-card
事件.
newWindow.webContents.send('sendWebsock', obj);
把数据传递给副屏幕窗口
副屏幕窗口接收
const { ipcRenderer } = require('electron');
ipcRenderer.on('sendWebsock', (event, obj) => {
console.log(obj)
})