Após a atualização do Electron para novas versões, não consegui implementar um código que abre a nova janela sobre utilizando ipcMain.
Uma configuração mudou seu padrão por motivos de segurança, porém quebra o código para abrir novas janelas da maneira ensinada pelo curso e não consegui resolver.
Creio que seja devido aos novos valores default de dois parametros: nodeIntegration e contextIsolation
Mensagem exibida na nova versão: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron
MAIN.JS
const { app, BrowserWindow, ipcMain } = require('electron');
app.on('ready', () => {
console.log('Aplicacão iniciada');
let mainWindow = new BrowserWindow({
width: 600,
height: 400
});
mainWindow.loadURL(`file://${__dirname}/app/index.html`);
});
app.on('window-all-closed', () => {
app.quit();
});
ipcMain.on('abrir-janela-sobre', () => {
let sobreWindow = new BrowserWindow({
width: 300,
height: 220
});
sobreWindow.loadURL(`file://${__dirname}/app/sobre.html`);
});
INDEX.HTML
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Alura Timer</title>
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<h1>Olá sou uma Janela do ELECTRONNNN!</h1>
<a href="#" id="link-sobre">Sobre</a>
<script src="js/renderer.js"></script>
</body>
</html>
RENDERER.JS
console.log('Eu estou na Janela do Browser');
const { ipcRenderer } = require('electron');
let linkSobre = document.querySelector('#link-sobre');
linkSobre.addEventListener('click', function() {
ipcRenderer.send('abrir-janela-sobre');
});
SOBRE.HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sobre o Alura Timer</title>
</head>
<body>
<p>O Alura timer é para você guardar seus tempos de estudo na Alura.</p>
</body>
</html>