首页 > 解决方案 > 如何在已经运行的 Electron 应用程序中通过“打开方式”打开文件?

问题描述

我有一个 Electron 应用程序,它能够在单独的选项卡中编辑多个文件,例如 Atom 或 VS Code。当通过对话框打开文件或在应用程序未运行时通过“打开方式”打开文件时(通过解析 argv),这可以正常工作。

但是,我不知道如何将通过“打开方式”打开的文件“添加”到已经运行的应用程序中 - 默认情况下,会创建应用程序的第二个新实例。我希望能够以某种方式将文件的路径传递给原始应用程序实例。

我浏览了文档,发现唯一有点希望的事情是“打开文件”事件,但这仅在 MacOS 上可用。

我正在运行 Electron 9.0.5 并使用 electron-builder 创建文件关联。

标签: javascriptnode.jselectron

解决方案


[..] 默认情况下,会创建应用程序的第二个新实例。

app.requestSingleInstanceLock()您可以使用和事件来防止这种情况发生second-instance

您的事件处理程序second-instance将接收新实例收到的所有命令行参数作为其第二个参数,您可以像以前一样处理它们。

如果您的应用程序打算在 macOS 上运行,您还应该使用open-file. 但是,不要完全依赖它,因为该second-instance事件也可能在 macOS 上触发(当不通过 Finder 启动应用程序时)。


推荐阅读