创建多个 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
我正在使用 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