2017-12-14 4 views
1

Electronを使用して簡単なデスクトップアプリケーションを開発するElectron Frameworkは初めてです。 問題は、電子アプリケーションで新しいウィンドウを開いてメニューバーの閉じるボタンを使用して閉じてからもう一度開いてみると、「オブジェクトが破棄された例外」がスローされます。閉じるボタンがクリックされても、私はどのようにBrowserWindowオブジェクトを保持しますか?オブジェクトが破棄されました。ElectronでボタンをクリックしてBrowserWindowを開くと例外が発生しました

+0

私はそのオブジェクトがそれを閉じた後に破棄されている知っている、しかし、ここで私は再びそれをインスタンス化する必要があります??あなたのコードください – pergy

答えて

1

BrowserWindowオブジェクトは、閉じたときに破棄されるはずです。参照を再利用するのではなく、再オープンするときに新しいインスタンスをインスタンス化する必要があります。

編集:あなたは、メインプロセス(すなわち「Main.js」)やレンダラープロセスからそれをやっている場合は、それが依存してインスタンス化方法

メインプロセスから、それは次のようになります。レンダラープロセスからインスタンス化する場合

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 
})); 

、あなたはメインプロセスにアクセスするには、「リモート」オブジェクトを使用する必要があります。だから、同じようになるだろう:

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

を表示ボタンをクリックした後にインスタンス化しようとしましたが、 "BrowserWindowはコンストラクタではありません"エラー – user7808817

+0

私は例を追加しました。私は最初の投稿のために私の電話の上にいた。希望が助けてくれる! – Jared

+0

ありがとう@Jared、新しいelectron.remote.BrowserWindowが働いた... – user7808817

関連する問題