electron - 创建多个窗口

标签 electron

我正在使用 Github Electron 和 Angular 1.x 构建桌面应用程序。我需要先创建一个登录窗口,登录成功后,我想显示/实例化主/实际应用程序窗口。

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

最佳答案

我的第一个建议是不要有多个窗口,而是有多个路由。要在 angular 1.x 中执行路由,请查看 angular-ui-router .

使用路由,您将使用同一窗口并更改在同一窗口内运行的应用程序的状态。

不过,您也可以通过简单地创建多个 BrowserWindow 对象或多次调用同一窗口上的 loadURL 来拥有多个窗口。

登录完成后,您可以使用 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

关于electron - 创建多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38414105/

相关文章:

json - Electron-Vue从JSON动态生成PDF文件并下载

python - Electron 问题运行manage.py运行服务器

javascript - 是否有显示和隐藏 Electron 应用程序的事件?

chromium - 选择框后Electron不会呈现任何HTML

javascript - 如何使用 squirrel.windows 创建注册表项

javascript - Electron 应用程序在Spectron测试中打开多个窗口或进程

javascript - 我应该使用什么事件来关闭 Electron 应用程序中的客户端 websocket?

electron - 如何在Electron中使用contextBridge创建contextMenu(右键单击菜单)

javascript - alert(__ dirname)在 Electron 应用程序中不产生任何输出

javascript - Electron 在树莓派上不起作用