Узел немедленно запускает 'close' для порожденного внешнего приложения (только для macOS) - PullRequest
0 голосов
/ 15 января 2020

Моему приложению Electron необходимо открыть внешнюю программу и дождаться ее закрытия, прежде чем реагировать снова. В Windows это работает нормально, но у macOS есть некоторые проблемы.

Так что мой код для яблока

const cp = require('child_process');
let child;
child = cp.exec('open -a Keynote \"'+pathToFile+'\"'), function(error, stdout, stderr){
    if(error) {
        throw error;
    }
}
child.on('close', function () {
    //do something when external application is closed
}

Проблема в том, что по какой-то причине процесс отправляет close событие сразу после запуска приложения. Есть ли способ контролировать, открыт ли Keynote в macOS, или это просто ошибка?

1 Ответ

0 голосов
/ 27 января 2020

Хорошо. Я узнал. Если кто-то сталкивается с той же проблемой: ее нужно открыть с параметром -W. Так что

cp.exec('open -a Keynote \"'+pathToFile+'\"' +' -W')

делает свое дело.

...