windows.js 1.1 KB

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