电子 - 从视图

时间:2016-05-03 10:22:46

标签: electron atom-editor

您好我是电子新手,我遇到了问题,我想在点击按钮上执行命令,因为我正在使用节点的child_process。我已经为app.on编写了一个代码('ready')并且工作正常。但我需要它点击下面是我的代码,请帮助..

function runExec() {
 child_process.exec('pwd', function(error, stdout, stderr){
  if(!error){
   console.log(stdout);
   setTimeout(function(){
    child_process.exec('ls -la', function(error, stdout, stderr){
      console.log(stdout);
    });
    }, 3000);
   }
 });
}

我想在点击时使用jquery / index.html运行此功能 HTML代码在这里:

<div class="col-sm-12 controls">
  <a id="btn-login" href="#" class="btn btn-success btnLogin">Login </a>
</div>

当我点击登录按钮点击API并获得响应&amp;我想在相同的点击或真实响应上调用该函数..

任何想法..

提前感谢:)

1 个答案:

答案 0 :(得分:4)

那么,它适用于您的主要流程,但是当您有人点击渲染器流程中的按钮时,您想要触发它吗?

您需要做的是在主流程中导出功能,然后使用Electron的remote模块将其拉入渲染器流程。

在主过程中,添加以下代码:

exports.runExec = runExec;

导入时,这会将runExec函数导出为runExec remote对象。

现在,在您的渲染器代码中(我假设您的主文件名为main.js,但它可能被命名为其他内容,这完全可以,只需将./main替换为您的名称文件在第二行):

var electron = require('electron');
var runExec = electron.remote.require('./main').runExec;

var loginButton = document.querySelector('. btnLogin');

loginButton.addEventListener('click', function () {
  runExec();
});

Electron的remote模块充当主进程的代理。所以当有人点击&#34;登录&#34;按钮,您的渲染器进程将从主进程触发runExec函数。