javascript - 如何在已经运行的 Electron 应用程序中通过“打开方式”打开文件?
问题描述
我有一个 Electron 应用程序,它能够在单独的选项卡中编辑多个文件,例如 Atom 或 VS Code。当通过对话框打开文件或在应用程序未运行时通过“打开方式”打开文件时(通过解析 argv),这可以正常工作。
但是,我不知道如何将通过“打开方式”打开的文件“添加”到已经运行的应用程序中 - 默认情况下,会创建应用程序的第二个新实例。我希望能够以某种方式将文件的路径传递给原始应用程序实例。
我浏览了文档,发现唯一有点希望的事情是“打开文件”事件,但这仅在 MacOS 上可用。
我正在运行 Electron 9.0.5 并使用 electron-builder 创建文件关联。
解决方案
[..] 默认情况下,会创建应用程序的第二个新实例。
app.requestSingleInstanceLock()
您可以使用和事件来防止这种情况发生second-instance
。
您的事件处理程序second-instance
将接收新实例收到的所有命令行参数作为其第二个参数,您可以像以前一样处理它们。
如果您的应用程序打算在 macOS 上运行,您还应该使用open-file
. 但是,不要完全依赖它,因为该second-instance
事件也可能在 macOS 上触发(当不通过 Finder 启动应用程序时)。