Приложение Electron, открывающее все страницы при запуске - PullRequest
0 голосов
/ 25 июня 2019

Я настраиваю многостраничное электронное приложение, однако всякий раз, когда я запускаю свое приложение, оно открывает все страницы, и каждый раз, когда я нажимаю кнопку, которая должна перенести пользователя на следующую страницу, оно пропускается и открывает и другие страницы.

Я полагал, что проблема была в установке отношения родитель / потомок каждого окна, однако при комментировании или удалении этих свойств проблема сохраняется.

const{app, BrowserWindow, ipcMain} = require('electron');
import{fstat} from 'fs';
import{resolve} from 'path';

const packagejson = require('../package.json')

app.commandLine.appendSwitch('touch-events', 'enabled'); 

if (require('electron-squirrel-startup')) { 
  app.quit();
}

let mainWindow;
let startWindow;
let setOriginsWindow;

const createWindow = () => {
  startWindow = new BrowserWindow({
    width: 800,
    height: 600,
  });

  startWindow.loadURL(`file://${__dirname}/index.html`);

  startWindow.webContents.openDevTools();

  startWindow.on('closed', () => {
    startWindow = null;
  });
};

app.on('ready', createWindow);

ipcMain.on('set-origins', (event) => {
  setOriginsWindow = new BrowserWindow({
  })
  setOriginsWindow.on('close', function() {setOriginsWindow = null});
  setOriginsWindow.loadURL(`file://${__dirname}/set_origin_page.html`)
  setOriginsWindow.once('ready-to-show', () => {
    setOriginsWindow.show();
  });
  setOriginsWindow.openDevTools();
  if(packagejson.ENV == "dev"){
    setOriginsWindow.openDevTools();
  }
})
    // parent:startWindow,
    // fullscreen: true,
    // modal:true,
    // show:false

ipcMain.on('start-procedure', (event) => {
  mainWindow = new BrowserWindow({
  })
  mainWindow.on('close', function () {mainWindow = null});
  mainWindow.loadURL(`file://${__dirname}/main_page.html`);
  mainWindow.once('ready-to-show', () => {
    mainWindow.show();
  });
  mainWindow.openDevTools();
  if(packagejson.ENV == "dev"){
    mainWindow.openDevTools();
  }
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (startWindow === null) {
    createWindow();
  }
});
'''

Первая страница, которую нужно открыть, должна быть заставкой с кнопкой, при нажатии которой открывается страница 2. Страница 2 имеет кнопку, при нажатии которой открывается страница 3.

1 Ответ

0 голосов
/ 25 июня 2019

Electron не подходит для многостраничных приложений и отображает пустой экран примерно четверть секунды при смене страниц.Вместо этого вы можете создать файл со всеми объединенными страницами и переключаться между ними с помощью методов DOM

Например

var splash_screen = document.getElementById('splash-screen');
var second_screen = document.getElementById('second-screen');
var third_screen = document.getElementById('third-screen');
document.removeChild(second_screen)
document.removeChild(third_screen)
var splash_button_click = () => {
document.removeChild(splash_screen);
document.appendChild(second_screen);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...