2017-12-14 3 views
1

Ich bin neu in Electron Framework, Entwicklung einfacher Desktop-Anwendung mit Electron. Problem ist, dass, wenn ich ein neues Fenster in Elektronen App öffne und schließe es mit der Menüleiste schließen Sie die Taste und versuchen Sie erneut, es zu öffnen, dann wirft es "Objekt wurde zerstört Ausnahme". Wie behalte ich das BrowserWindow-Objekt, obwohl die Schaltfläche "Schließen" gedrückt wurde ???Objekt wurde zerstört Ausnahme nach dem erneuten Öffnen BrowserWindow auf Knopf klicken in Elektron

+0

Code zeigen, bitte – pergy

Antwort

1

Das BrowserWindow-Objekt soll beim Schließen zerstört werden. Sie müssen beim erneuten Öffnen eine neue Instanz erstellen, anstatt die Referenz erneut zu verwenden.

Edit:

Wie Sie instanziiert es hängt davon ab, wenn Sie es aus dem Hauptprozess (das heißt „main.js“) oder den Renderer-Prozess tun.

aus dem Hauptprozess, würde es wie folgt aussehen:

var electron = require("electron"); 
var url = require("url"); 
var path = require("path"); 
var newWindow = new electron.BrowserWindow({ 
    width: 700, 
    height: 500 
}); 

newWindow.loadURL(url.format({ 
    pathname: path.join(__dirname, '/SomeStuff.html'), 
    protocol: 'file:', 
    slashes: true 
})); 

Wenn vom Renderer-Prozess Instanziieren Sie die „remote“ Objekt verwenden müssen, den Hauptprozess zuzugreifen. So würde es aussehen:

var newWindow = new electron.remote.BrowserWindow({ 
    width: 700, 
    height: 500 
}); 
+0

Ich weiß, ihr Objekt zerstört wurde, nachdem es zu schließen, aber wo soll ich instanziiert es wieder ?? Versuch, nach dem Klicken der Schaltfläche zu instanziieren, aber "BrowserWindow ist kein Konstruktor" Fehler – user7808817

+0

Ich habe ein Beispiel hinzugefügt. Ich war am Telefon für den ersten Post. Ich hoffe, das hilft! – Jared

+0

Dank @Jared, neue electron.remote.BrowserWindow arbeitete ... – user7808817

Verwandte Themen