2016-07-16 10 views
2

私はGithub ElectronとAngular 1.xを使ってデスクトップアプリケーションを構築しています。最初にログインウィンドウを作成し、ログインが成功すると、メイン/実際のアプリケーションウィンドウを表示/インスタンス化したがっています。複数のウィンドウを作成する

現在のElectronウィンドウインスタンスを破壊し、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 
関連する問題