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

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: "啦啦啦" })

相关文章:

  • Django之旅:第五节--Mysql数据库操作(一)
  • 鸿蒙HarmonyOS NEXT之无感监听
  • CSS rem、vw/vh、less
  • 【汽车传感系统架构:借助传感获取安全】
  • GAMES101-现代计算机图形学入门(Ray Tracing)
  • SpringBoot集成kafka极简教程
  • 宝塔:网站监控监控表没有数据异常处理
  • ROS多机通信(三)——Ubuntu Ad-Hoc 组网通信配置指南
  • 更新docker 容器时,提前换后端jar 包,为什么会存在异常
  • Oracle到达梦数据库迁移:技术要点与实践分享
  • Python SciPy面试题及参考答案
  • 推荐 --召回模型 DSSM, YoutubeDNNd
  • OPTICS聚类算法原理详解
  • 目标检测20年(四)——最终章
  • 使用MyBatis Plus的QueryWrapper实现复杂的SQL查询
  • macbook电脑如何清理键盘防止误触
  • SpringBoot 3+ Lombok日志框架从logback改为Log4j2
  • 深入浅出Spring-Boot-3.x.pdf
  • 游戏引擎学习第184天
  • Linux操作系统7- 线程同步与互斥7(RingQueue环形队列生产者消费者模型改进)
  • 思政课也精彩,“少年修齐讲堂”开讲《我的中国“芯”》
  • 韩国法院将重审李在明案,韩德洙入局能否为大选带来变数?
  • 讲武谈兵|朝鲜“崔贤”号驱逐舰下水,朝版“宙斯盾”战力如何?
  • 五一假期上海口岸出入境客流总量预计达59.4万人,同比增约30%
  • 国家卫健委对近日肖某引发舆情问题开展调查
  • 鲁迅先生儿媳、周海婴先生夫人马新云女士逝世,享年94岁