node.js - 在开发中使用自定义电子协议
问题描述
我正在开发一个需要自定义协议的 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 上启动的可执行文件的参数?我不需要行为与完全打包的应用程序完全相同,但我希望能够在开发中测试基本的自定义协议。
谢谢!
解决方案
推荐阅读
- javascript - 使用 TypeScript 将属性添加到不同文件中的现有类型
- vim - 如何将这两种模式结合和否定在一起?
- c# - 如何在 C# 中将函数转换为比较器
- java - 在 HikariConfig 类加载器或线程上下文类加载器中加载驱动程序类 com.mysql.cj.jdbc.Driver 失败
- python - 将绘图和打印语句保存在同一文件中
- r - 传单未在动态生成的 R markdown html knitr 中呈现
- ios - React Native,元素类型无效,应为字符串
- intellij-idea - 如何在 Intellij Groovy 检查报告中查看缺失的变量/方法
- java - Maven 在所有错误的地方寻找依赖项(对于某些事情)
- python - 如何在maptplotlib中显示图形两侧的轴标签?