【发布时间】:2021-06-12 15:46:57
【问题描述】:
我做了第一次尝试,想使用角度渲染器进程中的电子 API。我按照
中的说明进行操作Instruction creating Angular -Electron application
所以在我的 main.js 文件中我添加了:
const {app, BrowserWindow, ipcMain} = require('electron')
我也加了
function openModal(){
const { BrowserWindow } = require('electron');
let modal = new BrowserWindow({ parent: mainWindow, modal: true, show: false })
modal.loadURL('https://www.sitepoint.com')
modal.once('ready-to-show', () => {
modal.show()
})
}
ipcMain.on('openModal', (event, arg) => {
openModal()
})
在我的 app.component.ts 文件中添加了 import import { IpcRenderer } from 'electron';
我添加了以下构造函数
private ipc: IpcRenderer
constructor(){
if ((<any>window).require) {
try {
this.ipc = (<any>window).require('electron').ipcRenderer;
} catch (e) {
throw e;
}
} else {
console.warn('App not running inside Electron!');
}
}
由于我的 CLI 并不完全清楚 icp 将是 IpcRenderer 类型,因此我在这一行中添加了
private ipc: IpcRenderer | any;
具有功能
openModal(){
console.log("Open a modal");
this.ipc.send("openModal");
}
它应该能够向“主”进程发送一些东西。但是,如果我调用该函数,我会收到错误
TypeError:无法读取未定义的属性“发送”
我做错了什么?
【问题讨论】:
标签: javascript angular electron ipc ipcrenderer