| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 'use strict';
- const Addon = require('ee-core/addon');
- const { Controller } = require('ee-core');
- const config = require('../config/config.default');
- console.log(config);
- /**
- * example
- * @class
- */
- class WindowsController extends Controller {
- constructor(ctx) {
- super(ctx);
- }
- async openMain (config) {
- if( this.app.electron[config.id]) return;
- const win = new BrowserWindow({
- ...config,
- webPreferences: {
- webSecurity: false,
- contextIsolation: false, // false -> 可在渲染进程中使用electron的api,true->需要bridge.js(contextBridge)
- nodeIntegration: true,
- preload: path.join('../preload/preload.js','../preload/bridge.js'),
- },
- });
- win.loadURL(config.url); // 设置窗口的 URL
- // 监听窗口关闭事件
- win.webContents.openDevTools(config.openDevTools);
- win.on('close', () => {
- delete this.app.electron[config.id]; // 删除窗口引用
- });
- this.app.electron[config.id] = win ;
- }
- closeWindow(id) {
- if(this.app.electron[id]) this.app.electron[id].close()
- }
- minimizeWindow(id) {
- if(this.app.electron[id]) this.app.electron[id].minimize()
- }
- }
- WindowsController.toString = () => '[class WindowsController]';
- module.exports = WindowsController;
|