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