从 BrowserWindow 电子类扩展时出错

Posted

技术标签:

【中文标题】从 BrowserWindow 电子类扩展时出错【英文标题】:Error when extending from BrowserWindow electron class 【发布时间】:2018-10-12 08:12:17 【问题描述】:

我使用https://github.com/SimulatedGREG/electron-vue 模板创建了vue 电子模板。在主进程index.js 旁边,我创建了一个文件MainWindow.js,其中包含以下代码:

import  BrowserWindow  from 'electron';

export class MainWindow extends BrowserWindow 
  constructor(url) 
    super(
      height: 500,
      width: 300,
      frame: false,
      resizable: false,
      show: false,
      webPreference:  backgroundThrottling: false 
    );
    console.log('constructor called.');

    // this.loadURL(url);
    this.on('blur', this.onBlur.bind(this));
  

  onBlur() 
    this.hide();
  

当我现在尝试创建 MainWindow 的实例时,我收到以下错误:

Requires constructor call

function createWindow() 
  /**
   * Initial window options
   */
  mainWindow = new MainWindow();

  mainWindow.loadURL(winURL);

  mainWindow.on('closed', () => 
    mainWindow = null;
  );

我不明白为什么会出现这个错误,因为我正确使用了new

【问题讨论】:

您尝试过使用唯一的名称吗?也许它与BrowserWindow 类中的私有属性发生冲突。 【参考方案1】:

您不应该从 BrowserWindow 继承。目前不支持。

结帐:

https://github.com/electron/electron/issues/23

https://github.com/electron/electron/issues/8898

【讨论】:

以上是关于从 BrowserWindow 电子类扩展时出错的主要内容,如果未能解决你的问题,请参考以下文章

带有 browserWindow 和 preload.js 的电子生成器。无法加载预加载脚本

从角度组件关闭电子应用程序

如何获取 BrowserWindow 的 url?

从服务器从 nodemailer 发送电子邮件时出错

通过 Codeigniter 发送带附件的电子邮件时出错

从 Java 发送电子邮件时出错(SSL 握手异常)