electron中与iframe嵌入的第三方系统通信方式

【需求】:

electron中通过iframe引用第三方系统,关闭electron时,通知系统退出系统清除session

【解决方法】

  1. electron

app.vue中

<template>
  <div id="app1">  
    <Mytitle />  
    <div id="app" style="height:auto;">      
      <iframe id="unionConfig" ref="unionConfigRef" style="background-color: #fff;width:100%;height:100%;" :src="url" frameborder="0" scrolling="auto"></iframe>      
    </div>
  </div>
</template>
<script></script>

Mytile.vue

<script>
ipc.on('mainWindowClose', (event, message) => {    
  let dialog = remote.dialog;  
  dialog.showMessageBox({
    type: 'warning',
    title: '退出系统',
    message: '您确定要退出系统么?',
    buttons: ['OK', 'Cancel']
  }, function (index) {
    if (index === 0) {      
      // 向app.vue中的iframe发送消息
      const oIframe = document.getElementById('unionConfig');
      oIframe.contentWindow.postMessage('统一配置工具APP向系统发送退出消息', '*')      
      remote.mainWindow = null;
      // app.quit(); // 不要用quit();试了会弹两次
      remote.app.exit();// exit()直接关闭客户端,不会执行quit()
    } else {
      console.log('您的选择:Cancel');
    }
  }) 
})

</script>

2.第三方系统的app.vue中监听message消息

app.vue

<script>
window.addEventListener('message', (event) => {
    let data = event.data;
    switch (data.cmd) {
      case 'logout':
        console.log('执行退出,清session:', data)        
        break;
      default:        
        break;
    }
  });
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值