首页 > 解决方案 > 在开发中使用自定义电子协议

问题描述

我正在开发一个需要自定义协议的 Electron 应用程序。我希望能够使用电子 cli 在开发环境中对此进行测试。我目前正在使用以下方式注册协议:

const protocolRegisterSuccess = app.setAsDefaultProtocolClient('my-protocol');

然后我开始我的开发电子应用程序并在 Chrome 中electron main.bundle.js打开。my-protocol://test我希望它能够打开我当前正在运行的开发应用程序或至少启动另一个应用程序,但是它会启动一个显示默认电子屏幕的新电子应用程序(“要运行本地应用程序,请执行此命令......”)。

我在 Mac 上开发,当我查看时,~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist我可以看到协议已注册并且应用程序 ID 设置为com.github.electron. 看起来这是由电子 CLI 启动以在本地运行我的应用程序的电子可执行文件的应用程序 ID(存在于 中./node_modules/electron/dist/Electron.app/Contents/MacOS/Electron),我相信这就是协议不起作用的原因。

有没有办法让协议在本地工作?我可以更新应用标识符(通过一些配置参数或重建可执行文件)吗?是否可以指定传递给在 Mac 上启动的可执行文件的参数?我不需要行为与完全打包的应用程序完全相同,但我希望能够在开发中测试基本的自定义协议。

谢谢!

标签: node.jselectron

解决方案


推荐阅读