'instance-instance'发射,而不是mac上电子中的'open-url'

问题描述 投票:0回答:1

我们正在设置一个电子应用程序,以按照此处描述的结构从协议链接启动:https://github.com/oikonomopo/electron-deep-linking-mac-win(从Open app and pass parameters with deep linking using Electron (macOS)找到)

一旦安装了应用程序,我们可以从finder / launchpad打开应用程序,或者可以使用myapp://someparams从浏览器中调用该应用程序。

如果在关闭应用程序时调用myapp://someparams,则该应用程序将打开,并且主进程将按预期方式为mac触发open-url事件,我可以从网址中获取参数。如果最初通过此方法打开了应用程序,则重新调用myapp://someparams将继续使应用程序聚焦并按预期触发open-url

但是,如果最初是从查找程序,启动板或命令行打开应用程序,则调用myapp://someparams会引发second-instance事件,而我一直无法找到一种方法来获取用于调用应用程序。 Windows可以按预期工作,因为second-instance事件的第二个参数包含协议作为参数,但mac情况并非如此。

所以问题是-有没有办法从Mac上的second-instance事件中获取协议/ URL?还是有其他解决方法?

我确实从文档中看到了此代码段:https://electronjs.org/docs/api/app#apprequestsingleinstancelock

On macOS, the system enforces single instance automatically when users try to open a second instance of your app in Finder, and the open-file and open-url events will be emitted for that. However when users start your app in command line, the system's single instance mechanism will be bypassed, and you have to use this method to ensure single instance.
macos electron
1个回答
0
投票
  • 您应该在info.plist中将LSMultipleInstancesProhibited设置为true。
  • 如果使用电子生成器,则可以在mac.extendInfo上设置'LSMultipleInstancesProhibited:true'例如
mac: {
  ...
  extendInfo: {
    LSMultipleInstancesProhibited: true,
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.