我在本地存储中有一些数据必须在app.quit()上删除。但是我从主要过程中看不到这样做。

有没有办法从renderer调用main函数?

我知道var remote = require('remote');,但似乎只朝错误的方向前进。

最佳答案

您可以通过webContents.send将消息从主进程发送到渲染器进程,如此处文档https://github.com/atom/electron/blob/master/docs/api/web-contents.md#webcontentssendchannel-arg1-arg2-所述。

您可以直接从文档中执行以下操作:

在主要过程中:

// 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!');
  });
});

在index.html中:
<!-- index.html -->
<html>
<body>
  <script>
    require('electron').ipcRenderer.on('ping', function(event, message) {
      console.log(message);  // Prints "whoooooooh!"
    });
  </script>
</body>
</html>

注意它是异步的。我不确定这会如何影响您的特定解决方案,但这至少应该使您重新回到渲染器过程。

关于javascript - Electron :从main调用渲染器功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35711134/

10-13 05:58