当前位置: 首页 > 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: "啦啦啦" })
http://www.dtcms.com/a/92977.html

相关文章:

  • 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环形队列生产者消费者模型改进)
  • RK3568 设备树基础语法讲解
  • QLoRA和LoRA 微调
  • RK3568笔记八十一: Linux 小智AI聊天机器人移植
  • ctfshow做题笔记—栈溢出—pwn73、pwn74
  • 在 Mermaid 流程图里“驯服”quot;的魔法指南!!!
  • Maven仓库配置
  • React 组件之间的通信
  • Axure项目实战:智慧城市APP(完整交互汇总版)
  • 解析信息归属地与网络安全的关联
  • windows下安装sublime