私はGithub ElectronとAngular 1.xを使ってデスクトップアプリケーションを構築しています。最初にログインウィンドウを作成し、ログインが成功すると、メイン/実際のアプリケーションウィンドウを表示/インスタンス化したがっています。複数のウィンドウを作成する
現在のElectronウィンドウインスタンスを破壊し、AngularJS JavaScript Controllerから新しいウィンドウインスタンスを作成するにはどうすればよいですか?
私はGithub ElectronとAngular 1.xを使ってデスクトップアプリケーションを構築しています。最初にログインウィンドウを作成し、ログインが成功すると、メイン/実際のアプリケーションウィンドウを表示/インスタンス化したがっています。複数のウィンドウを作成する
現在のElectronウィンドウインスタンスを破壊し、AngularJS JavaScript Controllerから新しいウィンドウインスタンスを作成するにはどうすればよいですか?
最初の提案は、複数のウィンドウを持たず、代わりに複数のルートを持つことです。角度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