前端与业务层ipc通信时,需要的文件

位置:

  1. ./frontend/src/utils/ipcRenderer.js

API

$ipcInvoke(route, params)

  • 介绍:发送异步消息(invoke/handle 模型)
  • 返回:Promise ```

    回调语法

    handleInvoke () { this.$ipcInvoke(ipcApiRoute.ipcInvokeMsg, ‘异步-回调’).then(r => {
    1. console.log('r:', r);
    }); },

async/await语法

async handleInvoke2 () { const msg = await this.$ipcInvoke(ipcApiRoute.ipcInvokeMsg, ‘异步’); },

  1. <a name="J48mD"></a>
  2. ### $ipcSendSync(route, params)
  3. - 介绍:发送同步消息(send/on 模型)
  4. - 返回:任意类型

语法

const msg = this.$ipcSendSync(ipcApiRoute.ipcSendSyncMsg, ‘同步’);

  1. <a name="JhaxB"></a>
  2. ### $ipc
  3. - 介绍:全局ipc对象,等价于electron官方提供的 ipcRender

该对象包含如下方法: on once removeListener removeAllListeners send invoke sendSync postMessage sendTo sendToHost IpcRendererEvent

  1. 详细说明见:[https://www.electronjs.org/zh/docs/latest/api/ipc-renderer#ipcrendereronchannel-listener](https://www.electronjs.org/zh/docs/latest/api/ipc-renderer#ipcrendereronchannel-listener)
  2. <a name="KCJ3t"></a>
  3. ### $ipc.send(route, params)
  4. - 介绍:ipcsend属性,向主进程发送异步消息,可以发送任意参数。
  5. - 返回:结果在 $ipc.on()监听的路由中

使用

const params = { type: ‘start’, content: ‘开始’ } this.$ipc.send(ipcApiRoute.ipcSendMsg, params)

  1. <a name="laWrY"></a>
  2. ### $ipc.on(route, listener)
  3. - 介绍:ipc的on属性,监听 route;当新消息到达,将调用listener
  4. - 返回:callback

this.$ipc.on(ipcApiRoute.ipcSendMsg, (event, result) => { console.log(‘result:’, result);

// 调用后端的另一个接口 event.sender.send(ipcApiRoute.hello, ‘electron-egg’); }) ```