流程梳理
对于通过在 web 端来唤醒本地Electron应用的思路是:
通过调用 setAsDefaultProtocolClient 来注册协议, 当应用程序的协议例如 protocol
被成功注册之后, 当点击 protocol://
格式的链接的时候, 都会打开当前的应用程序, 在 macOS 系统上面, 通过监听 open-url
方法可以获取到我们打开应用程序上面的链接, 而在 windows
上面需要通过监听 second-instance
方法来获取到点击的链接:
- 注册协议
在代码中使用 setAsDefaultProtocolClient 来注册协议,
例如, 我们想要在打开链接格式为 link:// ....
形式的链接的时候,我们注册协议: app.setAsDefaultProtocolClient('link')
在 windows 下当注册协议的时候, 会将 link 写入到 windows 中的注册表中;
通过这种方法写入的协议, 需要在打包才能正常唤醒, 在开发环境下不能调起本地应用
在 mac 上面, 我们是要将协议写入到mac 应用中的 info.plist
文件中,
Info.plist
文件的位置:
如下:
在 finder 中右键图标, 点击 显示包内容 在出现的 Contents 文件夹中: