当前位置: 首页 > 知识库问答 >
问题:

javascript - electron的渲染进程和webview能否实现同步通信?

小牛23139
2024-08-19

这个同步指的是await,也就是实现类似于await Promise那一套。
目前我跟webview内部通信都是注入preload 脚本,然后使用事件发送、监听事件那一套。但是这样搞是异步的,有个页面的场景需要与webview里的东西深度结合,需要两者共同参与,所以有没有一个同步通信的机制(类似于渲染进程与主进程的ipcRender.invoke这样的也行)

共有1个答案

郜昊苍
2024-08-19

我猜测你要的不是同步,而是不写回调函数?

渲染进程

async function someFun(){
  const data = await window.api.someFun()
  console.log(data)
  return
}

preload

ipcRenderer.invoke('someFun')

main进程

ipcMain.handle('someFun',()=>{
    return '123'
})
 类似资料:
  • 我想要实现一个: react 调用nodejs ping 功能,让后实时与Ping模块程序通信,进行得到的结果展示在react界面上,这个解决方案应该如何做呢? 1、是否在渲染进程中执行最好?(不再经过Ipc通信,效率会更加高) 2、如果在渲染进程中做,那么如何实现实时通信呢? 3、如果通过ipc通信,让主进程执行ping 命令,那么ipc如何才能进行实时地通信呢? 例如,每得到一个reply,就

  • 从渲染进程到主进程的异步通信 进程: 渲染进程​ ipcRenderer模块是EventEmitter类的一个实例。 它提供了几个方法,所以你可以从渲染进程(网页)发送同步和异步消息到主进程。您还可以从主流程接收回复。 事件方法 ipcRenderer.on(channel, listener) 用途:监听 channel,并调用 listener(event, args...) 处理新消息 ch

  • 在主进程中处理由渲染进程发起的异步通信. 进程: 主进程​ ipcMain 模块是类EventEmitter类的一个实例. 浅显的打个比方,渲染进程给主进程挂个号,这里就开始忙活起来.当然,你也可以从主进程中向渲染进程发送消息. 发送消息 如果从主进程向渲染进程发送消息,请查看 web-contents-send​ 发送消息,事件名为 channel. 回应同步消息, 请设置 event.retu

  • remote模块是一种渲染器进程(网页)和主进程之间通信(IPC)的简单方法。 进程: 渲染进程​ 在Electron中,GUI相关模块(例如 dialog, menu等)只能用在主进程而非渲染器进程中使用。 为了从渲染器进程使用它们, ipc模块是向主进程发送进程间消息所必需的。 remote模块可以调用主进程对象的方法,而类似于Java的RMI无需显式地发送进程间消息。 从渲染器进程创建浏览器

  • Electron中如何让主进程和渲染进程之间进行即时通信呢? 我查验到: electron 通信 有4种方式: 但是没有说过有即时通信的使用说明。

  • electron 的渲染进程如何获取到process.cwd()的值 或者 process.resourcesPath也行 在preload.js中可以拿到process对象,但是没有cwd函数和resourcesPath的值。 之前版本的remote.getGlobal在27版本中也被移除,否则可以在main.js里面进行设置 还有一种办法是在preload.js中定义 ipcRender的通信