创建多个 windows

Creating multiple windows

我正在使用 Github Electron 和 Angular 1.x 构建桌面应用程序。我需要先创建一个登录 window,一旦登录成功,我想 show/instantiate main/actual 应用程序 window。

我们如何销毁当前的 Electron window 实例并从 AngularJS JavaScript Controller 创建一个新的 window 实例?

我要提出的第一个建议是不要有多条 windows 而是多条路线。要在 angular 1.x 中执行路线,请查看 angular-ui-router.

使用路由,您将使用相同的 window 并在相同的 window.

内更改应用程序 运行 的状态

然而,您也可以通过简单地创建多个 BrowserWindow 对象或多次调用 window 上的 loadURL 来拥有多个 windows。

您可以在登录完成后使用 ipc 模块与主进程通信,以触发所需的行为。

// main.js (main process)
const {app, BrowserWindow, ipcMain} = require('electron')

app.on('activate', () => {
  var win = new BrowserWindow()
  win.loadURL(`file://${__dirname}/login.html`)

  ipcMain.on('login-success', () => {
    win.loadURL(`file://${__dirname}/index.html`)
  })

})

然后在您的渲染过程中,只需将 login-success 消息发回即可。

// login.js (render process)
var {ipcRenderer} = require('electron')

ipcRenderer.send('login-success') // call this after the user logs in