未收到电子ipc消息

时间:2017-06-03 14:23:50

标签: javascript webview ipc electron

我正在使用GitHub的Electron制作我的应用程序。我的index.html有一个名为renderer.js的嵌入式脚本,index.html还动态加载另一个名为module.html的html文件,在module.html中有一个webview。 webview使用预加载器。我试图在renderer.js和preloader.js之间发送ipc消息。

我在发送部分(在renderer.js中)和接收部分(在preloader.js中)有一个console.log。只有发送的console.log工作,我在接收端什么也得不到。 Devtron也没有显示任何内容。我确实为webview和index.html提供了单独的控制台。

preloader.js

window.__devtron = {require: require, process: process}
require('devtron').install();

const { ipcRenderer: ipc } = require('electron');

document.addEventListener('DOMContentLoaded', function(event) {

ipc.on('show-dialog', (event, {type}) => {
  console.log('please receive this '+type); //THIS CONSOLE LOG DOES NOT WORK
});

});

renderer.js

window.__devtron = {require: require, process: process}
require('devtron').install();

const { ipcRenderer: ipc, remote } = require('electron');

document.addEventListener('DOMContentLoaded', function(event) {
  const webview = document.getElementById('webview');
  const btn = document.getElementById('devtools');
  const btn2 = document.getElementById('execjs');
  btn2.addEventListener('click', () => {
    console.log('clicked'); //THIS CONSOLELOG WORKS
    ipc.send('show-dialog', {
    type: 'info'
    });
  });
});

0 个答案:

没有答案