javascript - Node webkit : How to open external link with system default browser in MAC

标签 javascript node.js macos node-webkit

在 Windows 中我使用这些行

gui = require('nw.gui');

//To open a website externally
gui.Shell.openExternal(URL);

//To execute command line
gui.Shell.openItem(commandString);

它工作正常。同一段代码在 MAC 中不起作用。我在这里缺少什么?我不想创建任何文件并在其中写入命令(批处理文件,通常称为 shell 脚本。)。有没有办法不创建批处理文件并在 MAC 中运行这些命令?

最佳答案

您能否提供您正在测试的完整代码部分?

以下代码片段在 OSX 上运行良好(使用 nw.js 0.12.0 测试):

var gui = require('nw.gui');
gui.Shell.openExternal('http://www.google.com');

此外,gui.Shell.openItem 命令不用于执行命令(请参阅 Shell documentation )。

您应该使用 child_process Nodejs 附带的模块:

var exec = require('child_process').exec;
exec(commandString, function (error, stdout, stderr)
{
    console.log('stdout:' + stdout);
    console.log('stderr:' + stderr);
});

关于javascript - Node webkit : How to open external link with system default browser in MAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27923107/

相关文章:

node.js - NodeJS : understanding promise

performance - 以编程方式访问 MacOS 系统性能统计数据

python - 如何在没有多重共线性的 Pandas 中创建虚拟变量?

ruby-on-rails - Mac OS X 10.7.3 上的 Ruby on Rails 安装新增功能

node.js - 无法验证第一个证书 - Nodejs TLS

javascript - POST URL 格式错误,因为参数中存在空格

javascript - 使用 nodeJS 在 ArangoDB 中保存文档时出错

JavaScript 异步 readAsDataURL 多个文件

javascript - 导入 jQuery 验证

javascript - NestJS:如何将错误从一个错误过滤器传递到另一个错误过滤器?