我有一个正在运行的Electron应用程序,到目前为止工作得很好 . 对于上下文,我需要运行/打开一个外部文件,这是一个Go-lang二进制文件,它将执行一些后台任务 . 基本上它将作为后端并暴露电子应用程序将消耗的API .
到目前为止,这是我进入的:
-
我试图使用child_process使用child_process打开文件,但是由于路径问题我无法打开示例txt文件 .
-
Electron API公开open-file事件,但它没有文档/示例,我不知道它是否有用 .
而已 . 我如何在Electron中打开外部文件?
3 回答
你可能想要研究几个api,看看哪个有帮助你 .
fs
fs模块允许您直接打开文件进行读写 .
路径
path模块允许您以平台无关的方式构建和解析路径 .
shell
shell api是一个仅限电子的api,您可以使用它来执行给定路径上的文件,该路径将使用操作系统默认应用程序打开该文件 .
child_process
假设您的golang二进制文件是可执行文件,那么您将使用child_process.spawn来调用它并与之通信 . 这是一个节点api . 如果你的golang二进制文件不是可执行文件,那么你需要创建一个native addon包装器 .
Electron允许使用 nodejs packages .
换句话说,导入节点包就像在节点中一样,例如:
要运行golang二进制文件,可以使用child_process模块 . 文档是彻底的 .
Edit :你必须解决路径差异 .
open-file
事件是由窗口触发的客户端事件 . 不是你想要的 .我知道这不完全符合您的规范,但它确实将您的golang二进制文件和Electron应用程序完全分开 .
我这样做的方法是将golang二进制文件公开为Web服务 . 像这样
然后从Electron只需使用javascript函数调用web服务 . 像这样(你可以使用jQuery,但我发现这个纯粹的js工作正常)
使用这种方法你可以做类似的事情