6

我正在使用 Electron 制作多平台应用程序,并且正在尝试使用 electron-builder 进行文件关联。

我已经将它添加到配置中并且工作正常,当我双击一个文件时,它会打开应用程序,这是预期的,但我不知道如何在我的电子应用程序上接收该文件,我已经用谷歌搜索了,在电子生成器回购中查看了问题,但没有发现任何问题。到目前为止,我发现的唯一一件事是您应该将其作为自定义协议处理,如果我想从路径或 url 打开文件,这对我来说很有意义,但我不明白如何双击文件会触发自定义协议,当您双击与您的应用程序关联的文件时,电子是否使用定义的自定义协议?

我也没有在官方文档上找到任何东西,有什么帮助吗?

先感谢您。

4

1 回答 1

1

与 Electron 的文件关联与常规 Node.js 应用程序的工作方式相同:您从process.argv 数组中的调用者获取参数。

但是,有一个技巧:当您的应用程序被打包(即在 asar 文件中)时,argv与在“开发”模式下运行它时的参数数量不同。

您可以利用app.isPackage()( doc ) 来发挥作用:

if (app.isPackaged) {
  // workaround for missing executable argument)
  process.argv.unshift(null)
}
// parameters is now an array containing any files/folders that your OS will pass to your application
const parameters = process.argv.slice(2)

更多细节在这里

于 2020-10-10T06:55:31.407 回答