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();
});
ну если я тебя правильно понял, то тебе нужно открывать разные окна вот mainWindow ты передаешь targetUrl - это одно окно, соответсвенно во второе окно ты должен передавать уже не таргетурл, а новый путь (девсервера или прост хмтлку)
В стартовое окно я передаю 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')};
Обсуждают сегодня