问题描述
我将 NodeJS/Electron 用于桌面应用程序.
I'm using NodeJS/Electron for a desktop app.
我想做的是用它的操作系统的默认应用程序打开一个文件,比如用 Word 的 .docx.
What I wanna do, is to open a file with it's OS' default application, like .docx with Word.
到目前为止,我尝试的是使用 child_process.spawn、.exec 或 .execFile 的方法,但我什么也没得到.
What I tried so far are approaches using child_process.spawn, .exec or .execFile but I don't get anything.
这是我的实际代码:
var fs = require('fs'),
cp = require('child_process');
cp.spawn(__dirname + '/test.docx');
提前致谢.
推荐答案
使用openItem()
函数由 Electron 的 shell
模块提供,例如:
Use the openItem()
function provided by Electron's shell
module, for example:
const shell = require('electron').shell;
const path = require('path');
shell.openItem(path.join(__dirname, 'test.docx'));
根据文档,shell
模块应该在主/浏览器和渲染器进程中都可用.
According to the docs the shell
module should be available in both the main/browser and renderer processes.
注意:Electron 9.0.0 shell.openItem
API 已替换为异步 shell.openPath
API.shell.openPath 文档
Note: Electron 9.0.0 The
shell.openItem
API has been replaced with an asynchronousshell.openPath
API. shell.openPath docs
这篇关于使用 NodeJS 和 Electron 使用操作系统的默认应用程序(带有 Word 的 docx 等)打开外部文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!