169 похожих чатов

Добрый день! Возник такой вопрос, при создании приложения на Electron +

React возникла необходимость создавать дополнительные окна. Но вот проблема, в режиме разработчика в новом окне открывается информация с main окна.
Если приложение упаковать с помощью webpack и открывать что главное, что дополнительное окно с помощью html, все работает нормально, но чтобы корректировать нужно каждый раз переупаковывать. Может кто нибудь сталкивался с такой проблемой?
пример кода в main
const isDev = require('electron-is-dev');
const startUrl = isDev ? 'http://localhost:3000' : file://${path.join('smart-signalbox-react/src/index.js')};

function createWindow() {
const mainWindow = new BrowserWindow({
width: 1280,
height: 1024,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
enableRemoteModule: false,
preload: path.join(__dirname, 'preload.js'),
},
});
// mainWindow.loadFile(path.join(__dirname, 'index.html'));
mainWindow.loadURL(startUrl);
mainWindow.webContents.openDevTools();
}
app.on('ready', createWindow);
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
});
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
});
ipcMain.on('open-new-window', (event, buttonId) => {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
enableRemoteModule: false,
},
});
let targetUrl;
switch (buttonId) {
case 'TempSensor':
targetUrl = isDev ? 'http://localhost:3000/temp-sensor' : file://${path.join('smart-signalbox-react/src/Windows/Temp/indexTemp.js')};
// targetUrl = 'temp-sensor.html'
break;
}
console.log(targetUrl)
mainWindow.loadURL(targetUrl);
// mainWindow.loadFile(path.join(__dirname, targetUrl));
mainWindow.webContents.openDevTools();
});

2 ответов

11 просмотров

ну если я тебя правильно понял, то тебе нужно открывать разные окна вот mainWindow ты передаешь targetUrl - это одно окно, соответсвенно во второе окно ты должен передавать уже не таргетурл, а новый путь (девсервера или прост хмтлку)

Denis- Автор вопроса
True Jokerge
ну если я тебя правильно понял, то тебе нужно откр...

В стартовое окно я передаю startUrl const startUrl = isDev ? 'http://localhost:3000' : file://${path.join('smart-signalbox-react/src/index.js')}; А в дополнительные TargerUrl let targetUrl; targetUrl = isDev ? 'http://localhost:3000/temp-sensor' : file://${path.join('smart-signalbox-react/src/Windows/Temp/indexTemp.js')};

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта