gpt4 book ai didi

electron - Electron -Linux-如何通过网络浏览器设置深层链接?

转载 作者:行者123 更新时间:2023-12-03 12:21:01 26 4
gpt4 key购买 nike

我想实现什么?
在浏览器中输入像myApp://someData这样的URL方案应打开我的应用,并传递URL (在Linux中)
我发现的所有示例都适用于Windows/Mac OS,并且不适用于Linux
我使用electron-builder bundle 了我的Electron应用程序,以便配置方案,我在package.json中添加了以下内容

"protocols": [
{
"name": "myApp",
"role": "Viewer",
"schemes": [
"myApp"
]
}
]
让我们假设它可行-我不知道如何进行测试。
如何在 Electron 应用程序中拦截 myApp://someData URL?
我试过了: app.on('open-url',.....,但这仅适用于Mac OS
我尝试了 protocol.registerFileProtocol('myApp', (request, callback) => {...})这也没有工作。
这件事在Linux机器中甚至可能吗?如果是,怎么办?

最佳答案

您需要在应用程序的“第二实例”事件中处理此问题-

const gotTheLock = app.requestSingleInstanceLock();

app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required');

if (!gotTheLock) {
console.warn("Two app instances running");
app.quit();
} else {
app.on("second-instance", (event, argv, workingDirectory) => {
let url;
// Protocol handler for win and linux
// argv: An array of the second instance’s (command line / deep linked) arguments
if (process.platform == 'win32' || process.platform === "linux") {
// Keep only command line / deep linked arguments
url = argv.slice(1);
console.info("Args = " + url);
}
})
}

关于electron - Electron -Linux-如何通过网络浏览器设置深层链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62677201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com