【问题标题】:Creating multiple windows创建多个窗口
【发布时间】:2016-07-19 05:40:30
【问题描述】:

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

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

【问题讨论】:

    标签: electron


    【解决方案1】:

    我提出的第一个建议是不要有多个窗口,而是要有多个路线。要在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多