当我们在浏览器中点击要在浏览器中继续或在应用程序中打开的会议链接时,团队和zoom 等应用程序如何会弹出,如果我们在应用程序中单击打开,它将在桌面中启动应用程序并在该应用程序上开始通话.我想做一个类似的功能使用nextjs网络应用程序和Electron 瘦客户端.
我已经建立了一个Electron 瘦客户端,使用自定义URL协议从浏览器启动,现在我想当我从浏览器发送打开应用程序命令时,将数据从下一个js应用程序传输到Electron 窗口.Nextjs和Electronics是独立的应用程序
当我们在浏览器中点击要在浏览器中继续或在应用程序中打开的会议链接时,团队和zoom 等应用程序如何会弹出,如果我们在应用程序中单击打开,它将在桌面中启动应用程序并在该应用程序上开始通话.我想做一个类似的功能使用nextjs网络应用程序和Electron 瘦客户端.
我已经建立了一个Electron 瘦客户端,使用自定义URL协议从浏览器启动,现在我想当我从浏览器发送打开应用程序命令时,将数据从下一个js应用程序传输到Electron 窗口.Nextjs和Electronics是独立的应用程序
在主进程中,注册打开处理程序:
// Open handlers must be added as early as possible
app.on('open-file', onOpen)
app.on('open-url', onOpen)
//...
app.once('ipcReady', function () {
processArgv(argv)
您可以使用它做任何您想做的事情,例如,将它重定向到程序参数以重用处理参数:
function onOpen (e, torrentId) {
e.preventDefault()
if (app.ipcReady) {
// Magnet links opened from Chrome won't focus the app without a setTimeout.
// The confirmation dialog Chrome shows causes Chrome to steal back the focus.
// Electron issue: https://github.com/atom/electron/issues/4338
setTimeout(() => windows.main.show(), 100)
processArgv([ torrentId ])
} else {
argv.push(torrentId) // [to be handled by `processArgv` later anyway]
}
}
Example sourced from WebTorrent Desktop code base: 100
并将您的应用程序安装为系统中的默认协议处理程序:
Example sourced from WebTorrent Desktop code base: 100