Electron与CocosCreator通信

1,BrowserWindow中设置nodeIntegration和contextIsolation,否则无法在html中使用nodejs库

mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      preload: path.join(__dirname, 'preload.js')
    }
  })

2,在main.js中设置监听和发送

const ipcMain = electron.ipcMain;

ipcMain.on('test2', (event, arg) => {
  console.log("getmsg....................");
  mainWindow.webContents.send("test1", "111", "2222");
})

3,在cc发布后的index.html中赋值window.electron = require('electron');

<script type="text/javascript">
(function () {
    window.electron = require('electron');
    ......
})();

4,在cc代码中对electron监听和发送

    private electron;
    private ipcRenderer;

    start() {
        console.log(window['test']);
        this.electron = window['electron'];
        this.ipcRenderer = this.electron.ipcRenderer;
        this.ipcRenderer.on('test1', (event, info, detail) => {
            console.log("test1_receive...", event, info, detail);
        })
    }

踩了一下午的坑终于实现了Electron与CocosCreator通信


版权声明:本文为skyyywerq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。