1
resposta

Tenho este codigo meu na main.js para fechar a tela sobre, mas nao funciona. O estranho é que quando digito sobreWindown.close, quando eu digito o . (ponto) ele nao mostra o close, apenas tem console para completar.

//importa apenas o sub modulo de app do framework electron
const { app, BrowserWindow, ipcMain } = require('electron')


app.on('ready', () => {
    console.log('Aplicacao Iniciada')
    let mainWindow = new BrowserWindow ({
        width: 600,
        height: 400
    })
    //${__dirname} é uma variavel local do node que mostra o caminho do arquivo que esta sendo executado
    mainWindow.loadURL(`file://${__dirname}/app/index.html`)    
})

app.on('window-all-closed', () => {
    app.quit()
})

let sobreWindow = null

if (sobreWindow == null)
ipcMain.on('abrir-janela-sobre', () => {
    if (sobreWindow == null){
         sobreWindow = new BrowserWindow({
            width: 300,
            height: 220,
            alwaysOnTop: true,
            frame: false
        })

        sobreWindow.on('closed', () => {
            sobreWindow = null
        })
    }
    //${__dirname} é uma variavel local do node que mostra o caminho do arquivo que esta sendo executado
    sobreWindow.loadURL(`file://${__dirname}/app/sobre.html`)    
})

ipcMain.on('fechar-janela-sobre', () => {
    sobreWindow.close()
})
1 resposta

Olá Aline!

Primeiramente, o método está funcionando normalmente?

Caso ele esteja funcionando mas não aparece o auto-complete do método close isso pode estar acontecendo pois você define o sobreWindow lá em cima com o valor null. Isso quer dizer que a sua IDE ou editor de texto não irão enxergar o método .close() pois o sobreWindow não tem atributos, ele só terá depois que entrar no if, que é onde ele se torna um objeto BrowserWindow.

Espero que tenha ajudado! :D

Bons estudos! ^^