当前位置: 首页 > 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", // 提供服务的窗口的 uniqueIdmodule: "someModule",data: { lalalla: "啦啦啦" }}).then(res => {console.log("someModule response:", res)
})

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

let req: NODEDDK.ModuleRendererRequest = {toWindowUniqueId: "main", // 提供服务的窗口的 uniqueIdmodule: "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.mrgr.cn/news/96148.html

相关文章:

  • 为AI聊天工具添加一个知识系统 之152 当今AI模型和AI工具应用中的核心矛盾
  • cesium中label样式修改为圆角
  • Ubuntu24.04 离线安装 MySQL8.0.41
  • 软考《信息系统运行管理员》- 5.3 信息系统数据资源备份
  • 在Cesium中创建渐变色墙体效果
  • [二值图像处理] 骨架线提取、骨架端点、交叉点提取
  • Ollama未授权访问
  • 力扣:回溯算法
  • AS400==WINDOWS开发COBOL/安装DB2/连接DB2
  • 学有所记——初探向量数据库Weaviate
  • 深度学习入门1 基于Python的理论与实现
  • kubeadm部署k8s-1.32版本集群(1个master,1个worker)
  • 电机控制常见面试问题(二十)
  • 每日一题-力扣-2829. k-avoiding 数组的最小总和 0326
  • gz sim机器人SDF模型 [持续更新]
  • [unity 点击事件] 区域响应点击事件,排除子节点区域,Raycast Target 应用
  • Android实践开发制作小猴子摘桃小游戏
  • 系统架构设计知识体系总结
  • 在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程
  • 给Web开发者的HarmonyOS指南01-文本样式