私は、2 つのウィンドウを含むアプリケーションを構築するために Electron を使用しています。レンダラー プロセス内から 2 番目のウィンドウを開こうとしています。次のような操作を行います。
const electron = require('electron');
const BrowserWindow = electron.BrowserWindow;
const childWindow = new BrowserWindow({
width: 800,
height: 600
});
というエラーが表示されます
BrowserWindow はコンストラクターではありません。
他の選択肢としては、window.open を使用することですが、機能が制限された BrowserWindowProxy オブジェクトを返すため、理想的ではありません。
ベストアンサー1
必要なのはモジュールを使うことだけだと分かりましたremote
。Electron では、メイン プロセスと通信するためにモジュール (BrowserWindow) が必要なため、レンダラー プロセスからブラウザ ウィンドウを直接作成することはできませんipc
。Electron のドキュメントには次のように書かれています。
Electron では、GUI 関連のモジュール (ダイアログ、メニューなど) はメイン プロセスでのみ使用可能であり、レンダラー プロセスでは使用できません。レンダラー プロセスからそれらを使用するには、メイン プロセスにプロセス間メッセージを送信するための ipc モジュールが必要です。
つまり、new electron.BrowserWindow()
動作しません。ただし、remote
モジュールを正しく使用すると、メイン プロセスとのプロセス間通信が設定され、次の修正されたコードが動作します。
const electron = require('electron');
const BrowserWindow = electron.remote.BrowserWindow;
const childWindow = new BrowserWindow({
width: 800,
height: 600
});
モジュールのより詳細な説明はremote
ここにあります:リモート