当前位置: 首页 > article >正文

node-ddk,electron,主进程通讯,窗口间通讯

node-ddk,electron,主进程通讯,窗口间通讯

https://blog.csdn.net/eli960/article/details/146207062

也可以下载demo直接演示

http://linuxmail.cn/go#node-ddk

import

在主进程

import main, { NODEDDK } from "node-ddk/main"

在渲染进程

import renderer, { NODEDDK } from "node-ddk/renderer"

主进程提供服务(请求返回)

在主进程注册一个自定义的服务

// 服务器名 如 do-sth
main.ipc.registerListenModule("do-sth", async (req) => {
  console.log("do-sth req:", req)
  return {
    data: { ccc: "nihao", yourReqData: req.data, versions: process.versions },
  }
})

在渲染进程访问自定义的服务

let req: NODEDDK.ModuleRendererRequest = {
    module: "do-sth",
    data: {
        xxx: 123,
    }
}
renderer.ipc.request(req).then((res) => {
    console.log(res)
})

渲染进程提供服务(请求返回)

在渲染注册一个自定义的服务

// 服务名 如 someModule
renderer.ipc.registerListenModule("someModule", async (data) => {
    return { data: { www: "I am window", lll: data.data } }
})

在主进程访问自定义的服务

main.ipc.request({
  toWindowUniqueId: "main",
  module: "someModule",
  data: { lalalla: "啦啦啦" }
 }).then(res => {
    console.log("someModule response:", res)
})

在另一个窗口访问其他窗口提供的服务

let req: NODEDDK.ModuleRendererRequest = {
    toWindowUniqueId: "main", // 提供服务的窗口的 uniqueId
    module: "someModule",
    data: {
        intpuText: d.value,
    }
}
renderer.ipc.request(req).then((res) => {
    console.log(res)
})

渲染进程提供服务(消息通知)

在渲染注册一个自定义的消息接收器

// 名字为 "someReceiver"
renderer.ipc.registerMessageReceiver("someReceiver", (data) => {
    console.log("someReceiver", data)
})

在主进程向渲染进程发送消息

main.ipc.sendMessage("someReceiver", { lalalla: "啦啦啦" })

http://www.kler.cn/a/611039.html

相关文章:

  • 图解AUTOSAR_SWS_UDPNetworkManagement
  • 26考研——图_图的应用(6)
  • Maven工具学习使用(一)——MAVEN安装与配置
  • 企业级基于SpringBoot的MQTT的构建和使用
  • Vue3项目中的.vscode文件夹
  • 【软考-架构】9.3、端口扫描-安全体系-网络安全技术和协议
  • 海思烧录工具HITool电视盒子刷机详解
  • 初识MySQL · 约束
  • 【react18】react项目使用mock模拟后台接口
  • 【R语言可视化】人口金字塔
  • 游戏引擎学习第183天
  • 7.5 窗体事件
  • 如何理解FFMPEG两个宏 1.MATCH_PER_TYPE_OPT, 2.MATCH_PER_STREAM_OPT
  • 【Python】编程50个经典操作
  • 图解神经网络和强化学习
  • 回滚日志(Undo Log) 的 Purge
  • 【SpringCloud】认识微服务
  • JVM类加载过程详解
  • 【Python-OpenCV】手势控制贪吃蛇
  • Linux系统管理与编程08:任务驱动综合应用