2016-07-16 5 views
2

Github Electron과 Angular 1.x를 사용하여 데스크톱 응용 프로그램을 만듭니다. 먼저 로그인 창을 만들어야하고 로그인이 성공하면 주/실제 응용 프로그램 창을 표시하거나 인스턴스화하려고합니다.여러 개의 창 만들기

어떻게 현재 전자 창 인스턴스를 파괴하고 AngularJS JavaScript Controller에서 새 창 인스턴스를 만들 수 있습니까?

답변

6

첫 번째 제안은 여러 개의 창이 아니라 여러 개의 경로를 사용하는 것입니다. 각도 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 
관련 문제