当用户需要让渲染进程(h5页面)与electron进程直接通信时,功能文件须放在 electron/ipc 目录下。
前端(vue)通过调用如下方法访问:
// 版本 >= 1.14.0// 【前端代码】:frontend/src/views/demo/socket/Index.vue// 短消息this.$ipcCallMain('example.hello', value).then(r => {self.$message.info(r);})// 长消息self.$ipc.on('example.socketMessageStart', (event, result) => {self.socketMessageString = result;})self.$ipc.send('example.socketMessageStart', '时间')// 【服务端代码】: electron/ipc/example.js// 短消息exports.hello = function (event, channel, msg) {let newMsg = msg + " +1"let reply = ''reply = '收到:' + msg + ',返回:' + newMsgreturn reply}// 长消息exports.socketMessageStart = function (event, channel, arg) {// 每隔1秒,向前端页面发送消息// 用定时器模拟myTimer = setInterval(function(e, c, msg) {let timeNow = Date.now();let data = msg + ':' + timeNow;e.reply(`${c}`, data)}, 1000, event, channel, arg)return '开始了'}
// 旧版本// 【前端代码】:frontend/src/views/example/Ipc.vuehelloHandle(value) {const self = this;this.$callMain('example.hello', value).then(r => {self.$message.info(r);})},// 【服务端代码】:electron/ipc/example.jsanswerRenderer('example.hello', async (msg) => {let newMsg = msg + " +1"let reply = ''reply = '收到:' + msg + ',返回:' + newMsgreturn reply})
