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/

相关文章:

javascript - 有没有更好的方法来检查标志,然后在javascript中的函数中设置可选参数? (在js对象中编写函数)

javascript - 如何在 Electron 中获取添加的BrowserView的控制台输出?

electron - 在Win10中Electron NET不在生产模式下运行

node.js - 如何为 Electron 重建原生 npm 模块?

javascript - 基于 Electron-vue 的 Electron 应用中 Vuex 突变的奇怪行为

javascript - 使用 Electron 将 Angular 框架应用程序转换为桌面应用程序

javascript - 如何同时在Electron中触发JavaScript警报和通知?

node.js - 使用Node.js在默认(扬声器)设备上以最大音量播放声音吗?

javascript - Electron 没有在应用程序中完全更新已编辑的 index.html

javascript - 如何在Windows中的 Electron 应用程序中授予音频权限?