美文网首页
electron contextBridge

electron contextBridge

作者: 冰落寞成 | 来源:发表于2021-05-27 15:51 被阅读0次

    contextBridge

    在隔离的上下文中创建一个安全的、双向的、同步的桥梁。

    API

    提供给 exposeInMainWorldapi 必须是一个 FunctionStringNumberArrayBoolean;或一个键为字符串,值为一个 FunctionStringNumberArrayBoolean的对象;或其他符合相同条件的嵌套对象。

    Function 类型的值被代理到其他上下文中,所有其他类型的值都会被 复制冻结。 在 API 中发送的任何数据 /原始数据将不可改变,在桥接器其中一侧的更新不会导致另一侧的更新。
    简单示例,渲染进程和主进程通信:

    import { contextBridge, ipcRenderer } from 'electron'
    window.ipcRenderer = ipcRenderer
    
    contextBridge.exposeInMainWorld('ipcRenderer', {
      // 异步向主进程 发送消息
      send: (channel, data) => {
        let validChannels = ['toMain', 'downLoad', 'judgeUse', 'hideMenu', 'showMenu', 'window-close', 'asyncGetLocalServer']
        if (validChannels.includes(channel)) {
          ipcRenderer.send(channel, data)
        }
      },
      // 同步向主进程 发送消息,
      sendSync: (channel, data) => {
        let validChannels = ['syncGetLocalServer']
        if (validChannels.includes(channel)) {
          return ipcRenderer.sendSync(channel, data)
        }
      },
      // 异步接收主进程返回的数据
      receive: async (channel) => {
        let validChannels = ['authorizeBack', 'asyncBackLocalServer']
        if (validChannels.includes(channel)) {
          return new Promise((resolve) => {
            ipcRenderer.on(channel, (event, ...args) => {
              resolve(...args)
            })
          });
    
        }
      }
    })
    
    
    

    相关文章

      网友评论

          本文标题:electron contextBridge

          本文链接:https://www.haomeiwen.com/subject/wrcdsltx.html