windows.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. const Addon = require('ee-core/addon');
  3. const { Controller } = require('ee-core');
  4. const config = require('../config/config.default');
  5. console.log(config);
  6. /**
  7. * example
  8. * @class
  9. */
  10. class WindowsController extends Controller {
  11. constructor(ctx) {
  12. super(ctx);
  13. }
  14. async openMain (config) {
  15. if( this.app.electron[config.id]) return;
  16. const win = new BrowserWindow({
  17. ...config,
  18. webPreferences: {
  19. webSecurity: false,
  20. contextIsolation: false, // false -> 可在渲染进程中使用electron的api,true->需要bridge.js(contextBridge)
  21. nodeIntegration: true,
  22. preload: path.join('../preload/preload.js','../preload/bridge.js'),
  23. },
  24. });
  25. win.loadURL(config.url); // 设置窗口的 URL
  26. // 监听窗口关闭事件
  27. win.webContents.openDevTools(config.openDevTools);
  28. win.on('close', () => {
  29. delete this.app.electron[config.id]; // 删除窗口引用
  30. });
  31. this.app.electron[config.id] = win ;
  32. }
  33. closeWindow(id) {
  34. if(this.app.electron[id]) this.app.electron[id].close()
  35. }
  36. minimizeWindow(id) {
  37. if(this.app.electron[id]) this.app.electron[id].minimize()
  38. }
  39. }
  40. WindowsController.toString = () => '[class WindowsController]';
  41. module.exports = WindowsController;