electron 我如何从Web应用程序向电子瘦客户端发送一些数据(如授权令牌),我正在使用自定义url协议打开瘦客户端

uujelgoq  于 2023-09-28  发布在  Electron
关注(0)|答案(1)|浏览(123)

当我们点击浏览器中的会议链接时,像teams和zoom这样的应用程序是如何弹出的,我们希望在浏览器中继续或在应用程序中打开,如果我们点击在应用程序中打开,那么它会在桌面中启动应用程序并在此开始呼叫。我想用一个nextjs web应用程序和一个electron瘦客户端来实现类似的功能。
我已经构建了一个电子瘦客户端,它使用自定义url协议从浏览器启动,现在我想从下一个js应用程序传输数据到电子窗口,当我从浏览器发送打开应用程序命令时。NextJS和Electron是独立的应用程序

ulmd4ohb

ulmd4ohb1#

在主进程中,注册打开的处理程序:

// 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]
  }
}
  • 示例来源于WebTorrent Desktop代码库:https://github.com/mathiasvr/webtorrent-desktop/blob/master/src/main/index.js#L55*

并将您的应用程序安装为系统中的默认协议处理程序:

相关问题