Electron:从 main 调用渲染器函数

Electron: Call renderer function from main(Electron:从 main 调用渲染器函数)
本文介绍了Electron:从 main 调用渲染器函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在本地存储中有一些数据必须在 app.quit() 上删除.但我认为从主要过程中无法做到这一点.

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.

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

Is there a way to call a renderer function from main?

我知道 var remote = require('remote'); 但它似乎只走错了方向.

I know about var remote = require('remote'); but it seems to go only in the wrong direction.

推荐答案

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

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.
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 中:

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.

这篇关于Electron:从 main 调用渲染器函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)