【3.8.3编辑器扩展求助】属性检查器面板的扩展如何接收扩展主进程的消息

如题,已知扩展是基于多进程的模式实现,渲染与插件主逻辑并不在同一个进程里面。现在有个需求需要从主进程通知属性检查器面板进行刷新,找了一圈没找到有效的写法。有大佬能帮忙答疑一下不?

找到办法了,安装 electron 依赖库后可以使用 ipcMainipcRenderer 对象进行通信。

安装:

npm install electron --save-dev

如果访问超时可尝试使用国内源:

# 临时使用淘宝镜像
npm install electron --save-dev --electron_mirror=https://npmmirror.com/mirrors/electron/

主进程代码(扩展入口文件):

import { ipcMain } from 'electron';

// 初始化IPC监听
ipcMain.on('from-renderer', (event, message) => {
  console.log('收到渲染进程消息:', message);
  // 回复消息
  event.sender.send('from-main', { response: '主进程已收到' });
});

渲染进程代码(属性检查器面板扩展):

// ... 其他代码保持不变 ...

import { ipcRenderer } from 'electron';

export function ready(this: PanelThis) {
    // 监听主进程消息
    ipcRenderer.on('from-main', (event, message) => {
        console.log('收到主进程消息:', message);
    });
}

export function close(this: PanelThis) {
    // 移除监听
    ipcRenderer.removeAllListeners('from-main');
    // ... 原有关闭逻辑 ...
}

// 示例:发送消息到主进程
function sendToMain() {
    ipcRenderer.send('from-renderer', { 
        type: 'custom-event',
        data: '需要传递的数据' 
    });
}