gpt4 book ai didi

macos - '第二个实例'在mac上的 Electron 中触发而不是 'open-url'

转载 作者:行者123 更新时间:2023-12-03 12:42:57 24 4
gpt4 key购买 nike

我们有一个 Electron 应用程序,我们正在设置它从协议(protocol)链接启动,遵循此处描述的结构: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当应用程序关闭时,应用程序打开并且主进程触发 open-url符合预期的mac事件,我可以从url中获取参数。如果应用程序最初是通过此方法打开的,则重新调用 myapp://someparams继续关注应用并开火open-url正如预期的那样。

但是,如果应用程序最初是从查找器、启动板或命令行打开的,则调用 myapp://someparams导致 second-instance事件改为触发,我无法找到一种方法来获取用于调用应用程序的 url。由于 second-instance 的第二个参数,Windows 按预期工作。 event 包含协议(protocol)作为参数,但 mac 并非如此。

所以问题是 - 有没有办法从 second-instance 中获取协议(protocol)/url mac上的事件?或者还有其他方法可以解决这个问题吗?

我确实从文档中看到了这个片段: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.

最佳答案

  • 您应该在 info.plist 中将 LSMultipleInstancesProhibited 设置为 true。
  • 如果您使用的是 Electron 生成器,您可以在 mac.extendInfo 设置 'LSMultipleInstancesProhibited: true'
    例如
  • mac: {
    ...
    extendInfo: {
    LSMultipleInstancesProhibited: true,
    }
    }

    关于macos - '第二个实例'在mac上的 Electron 中触发而不是 'open-url',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57733424/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com