Shi*_*wal 3 atom-editor electron
您好,我是电子新手,我遇到了一个问题,我想在单击按钮上执行一个命令,因为我正在使用节点的 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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我想在单击时使用 jquery/index.html 运行此函数 HTML 代码在这里:
<div class="col-sm-12 controls">
<a id="btn-login" href="#" class="btn btn-success btnLogin">Login </a>
</div>
Run Code Online (Sandbox Code Playgroud)
当我点击登录按钮点击 API 并获得响应时,我也想在相同的点击或真实响应中调用该函数..
任何的想法..
提前致谢 :)
小智 5
那么,它在您的主进程中工作,但您想在有人单击渲染器进程中的按钮时触发它吗?
您需要做的是导出主进程中的功能,然后使用 Electron 的remote模块将其拉入渲染器进程。
在您的主流程中,添加以下代码:
exports.runExec = runExec;
Run Code Online (Sandbox Code Playgroud)
这将您的导出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();
});
Run Code Online (Sandbox Code Playgroud)
Electron 的remote模块充当主进程的代理。因此,当有人单击“登录”按钮时,您的渲染器进程将从runExec主进程触发该功能。