首页 > 解决方案 > 在 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

标签: javascriptelectron

解决方案


事实证明,在 macOS 上,您需要处理 open-url 事件:

    app.on("open-url", (event, url) => {
        console.log(url);
    });

推荐阅读