2016-03-20 3 views
0

Ich benutze Angular2 mit Electron und WebPack.Angular2 und Elektronen zugreifendes BrowserWindwow Objekt

I https://github.com/atom/electron/blob/master/docs/api/browser-window.md

einen Einfluß auf das BrowserWindow Objekt zu bekommen versuche ich auf der Spitze meiner Komponente

import * as electron from 'electron'; 

jedoch, wenn dabei tue:

this.authWindow = new electron.BrowserWindow({ width: 800, height: 600, show: false}); 

ich eine bekommen Fehler bei der Laufzeit

ORIGINAL EXCEPTION: TypeError: electron.BrowserWindow is not a function

Wenn das Loggen von Elektronen selbst nur wie eine Funktion aussieht, gibt es kein BrowserWindow Objekt darin.

function defineProgram(name, opts) { 
    var program = new Program(name, opts); 
    return program; 
} 

In WebPack I webpackTargetElectronRenderer bin mit Electron Ziel.

Die Absicht ist, ein neues Browserfenster Objekt zu öffnen viel wie hier getan http://manos.im/blog/electron-oauth-with-github/

+0

Was ist 'remote.' für? –

+0

Entschuldigung, es ist nicht remote. Sein this.authWindow = new electron.BrowserWindow ({width: 800, height: 600, show: false}); –

Antwort

1

zwischen dem Renderer-Prozess und dem Hauptprozess zu kommunizieren, müssen Sie die Remote API (https://github.com/atom/electron/blob/master/docs/api/remote.md) verwenden.

So etwas sollte funktionieren:

const remote = require('electron').remote; 
const BrowserWindow = remote.BrowserWindow; 

this.authWindow = new BrowserWindow({ width: 800, height: 600, show: false}); 
+0

Danke, das hat gut funktioniert. Ich hatte das schon probiert, aber da ich die Abhängigkeit von Elektronen hatte und auch elektronenvorgebaut war, funktionierte es nicht. Gerade Elektron-Prebuilt als Abhängigkeit und die oben genannten funktioniert Nicely;) Vielen Dank! –