webContents.send e ipcRenderer.on Não está funcionando
Sou bastante novo no NodeJS, mas tenho bastante experiência com o vanilla J
No código a seguir, o que exatamente estou fazendo de errado aqu
Não fazconsole.log
qualquer coisa no console do desenvolvedor do aplicativo, então estou assumindo que o canal de comunicação está quebrado de alguma forma?
Tem algo a ver com o fato de quereaddir
é assíncrono?
fs.readdir(__dirname, (err, files)=>{
files.forEach((file, index)=>{
console.log('display', __dirname+'\\'+file) // this prints everything as expected
mainWindow.webContents.send('display', __dirname+'\\'+file)
// mainWindow.send(...) doesn't work either
})
})
index.htmlconst electron = require('electron')
const {ipcRenderer} = electron
const con = document.getElementById('con')
ipcRenderer.on('display', (e, arg)=>{
const div = document.createElement('div')
const txt = document.createTextNode(arg)
div.appendChild(txt)
con.appendChild(div)
console.log(e) // neither this
console.log(arg) // nor this prints anything to the app's developer console
})
Aqui está um CODEPEN com TODO o código.
Soluçã Acontece que a embalagemwebContents.send
em outra função fez o truque. No entanto, não sei por que esse é o cas
mainWindow.webContents.on('did-finish-load', ()=>{
mainWindow.webContents.send('display', __dirname+'\\'+file)
})
Alguém quer me explicar por que eu tenho que embrulharwebContents.send
em outra função para que funcione corretamente?