当我们在浏览器中点击要在浏览器中继续或在应用程序中打开的会议链接时,团队和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

Javascript相关问答推荐

React存档iframe点击行为

使用axios.获取实时服务器时的404响应

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

过滤对象数组并动态将属性放入新数组

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

将2D数组转换为图形

WebRTC关闭navigator. getUserMedia正确

在nextjs服务器端api调用中传递认证凭证

如何从隐藏/显示中删除其中一个点击?

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

在执行异步导入之前判断模块是否已导入()

如何在Angular17 APP中全局设置AXIOS

Reaction Native中的范围滑块

如何在不影响隐式类型的情况下将类型分配给对象?

使用父标签中的Find函数查找元素

在不扭曲纹理的情况下在顶点着色器中旋转UV

判断函数参数的类型

用另一个带有类名的div包装元素

为什么我不能使用其同级元素调用和更新子元素?

暂停后只有一次旋转JS