我正在尝试弄清楚如何通过一个Angular组件关闭Electron应用程序。我在main.js中使用frame: false
来移除菜单栏。 我有一个位于电子应用程序右上角的组件上的关闭按钮。 我希望能够在点击时从component.ts文件中关闭应用程序,但是我没有看到任何从Angular组件关闭Electron的示例。
我认为以下代码可以工作,但实际上并不行。 我从main.js导出一个函数,并从组件中调用该函数。像这样(请参见closeApp()
):
const { app, BrowserWindow } = require('electron')
const url = require("url");
const path = require("path");
let mainWindow
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
frame: false,
webPreferences: {
nodeIntegration: true
}
})
mainWindow.maximize();
mainWindow.loadURL(
url.format({
pathname: path.join(__dirname, `/dist/index.html`),
protocol: "file:",
slashes: true
})
);
...
function closeApp() {
mainWindow = null
}
export { closeApp };
然后我会尝试将它导入到组件中,如下所示:
import { Component, OnInit } from '@angular/core';
import { closeApp } from '../../../main.js';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss']
})
export class HeaderComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
testClose() {
closeApp();
}
}
我该如何从Angular中关闭Electron应用程序?感谢任何帮助!
import { ipcMain, IpcMessageEvent } from 'electron';
,它会显示Cannot use import statement outside a module
,但这就是文章的设置方式。我尝试使用require导入,但也不起作用。我创建了一个简化版本的代码库,希望您能看到问题所在... https://github.com/user6680/angular-ipc 。非常感谢您的帮助! - user6680