前端与业务层ipc通信时,需要的文件
位置:
./frontend/src/utils/ipcRenderer.js
API
$ipcInvoke(route, params)
- 介绍:发送异步消息(invoke/handle 模型)
- 返回:Promise
```
回调语法
handleInvoke () { this.$ipcInvoke(ipcApiRoute.ipcInvokeMsg, ‘异步-回调’).then(r => {
}); },console.log('r:', r);
async/await语法
async handleInvoke2 () { const msg = await this.$ipcInvoke(ipcApiRoute.ipcInvokeMsg, ‘异步’); },
<a name="J48mD"></a>
### $ipcSendSync(route, params)
- 介绍:发送同步消息(send/on 模型)
- 返回:任意类型
语法
const msg = this.$ipcSendSync(ipcApiRoute.ipcSendSyncMsg, ‘同步’);
<a name="JhaxB"></a>
### $ipc
- 介绍:全局ipc对象,等价于electron官方提供的 ipcRender
该对象包含如下方法: on once removeListener removeAllListeners send invoke sendSync postMessage sendTo sendToHost IpcRendererEvent
详细说明见:[https://www.electronjs.org/zh/docs/latest/api/ipc-renderer#ipcrendereronchannel-listener](https://www.electronjs.org/zh/docs/latest/api/ipc-renderer#ipcrendereronchannel-listener)
<a name="KCJ3t"></a>
### $ipc.send(route, params)
- 介绍:ipc的send属性,向主进程发送异步消息,可以发送任意参数。
- 返回:结果在 $ipc.on()监听的路由中
使用
const params = { type: ‘start’, content: ‘开始’ } this.$ipc.send(ipcApiRoute.ipcSendMsg, params)
<a name="laWrY"></a>
### $ipc.on(route, listener)
- 介绍:ipc的on属性,监听 route;当新消息到达,将调用listener
- 返回:callback
this.$ipc.on(ipcApiRoute.ipcSendMsg, (event, result) => { console.log(‘result:’, result);
// 调用后端的另一个接口 event.sender.send(ipcApiRoute.hello, ‘electron-egg’); }) ```