javascript - 在 electronjs 中处理和注册协议
问题描述
我正在尝试通过 URI(“openfoobar://paratmers”)从浏览器打开一个 Eelectron 应用程序
我确实通过注册协议registerHttpProtocol
并添加了注册表项。当我单击链接<a href="openfoobar://para1">Open in Notes</a>
时,应用程序打开,但没有收到任何参数。
请查看下面的代码。
包.json
"protocols": [{
"name": "openfoobar",
"role": "Viewer",
"schemes": ["openfoobar"]
}]
main.js
const PROTOCOL_PREFIX = "openfoobar"
protocol.registerStandardSchemes([PROTOCOL_PREFIX])
...
protocol.registerHttpProtocol(PROTOCOL_PREFIX, (req, cb) => {
console.log('passed params ' + req);
//mainWindow.loadURL(fullUrl)`
})
我希望在控制台中看到passed params para1
。
解决方案
事实证明,在 macOS 上,您需要处理 open-url 事件:
app.on("open-url", (event, url) => {
console.log(url);
});
推荐阅读
- docker - 网络主机中的 Docker 绑定端口
- javascript - date-fns formatRelative RangeError: Invalid time value when using basic new Date() js function
- php - 在一定时间后注销用户
- php - 未定义属性:App\Http\Controllers\UserController::$user
- git - 从 VSCode 中清理已删除的文件
- php - 随机问候生成器
- amazon-web-services - AWS 圣杯错误。如何正确输入我的凭据?
- swiftui - SwiftUI 中的 GeometryReader 和 GeometryProxy 有什么区别?
- android - CardView 背景颜色被修剪
- css - React RC-Slider Grab 与标签上的指针