I have some data in the localstorage that has to be deleted on app.quit()
. But I see no way to do so from the main process.
Is there a way to call a renderer
function from main
?
I know about var remote = require('remote');
but it seems to go only in the wrong direction.
You can send messages from the main process to a renderer process via webContents.send as called out in the documentation here: https://github.com/atom/electron/blob/master/docs/api/web-contents.md#webcontentssendchannel-arg1-arg2-.
Here is how you do it straight from the docs:
In the main process:
// In the main process.
var window = null;
app.on('ready', function() {
window = new BrowserWindow({width: 800, height: 600});
window.loadURL('file://' + __dirname + '/index.html');
window.webContents.on('did-finish-load', function() {
window.webContents.send('ping', 'whoooooooh!');
});
});
In index.html:
<!-- index.html -->
<html>
<body>
<script>
require('electron').ipcRenderer.on('ping', function(event, message) {
console.log(message); // Prints "whoooooooh!"
});
</script>
</body>
</html>
Note it is asynchronous. I am not sure how that affects things with your particular solution, but this should at least get you talking back to the renderer process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With