Электронные окна пустые при загрузке - PullRequest
2 голосов
/ 29 марта 2019

Я хочу встроить некоторый код на стороне php-сервера в электронное приложение.Я нашел интересный способ заставить php работать внутри моего приложения, но у меня возникла небольшая проблема при запуске приложения.На самом деле главное окно пустое, пока я не обновлю его.Можно ли обновить страницу, чтобы решить эту проблему?

const { app, BrowserWindow } = require('electron');
const electron = require('electron');
const Menu = electron.Menu;
const path = require('path');
const url = require('url');
const os = require('os');
// PHP SERVER CREATION /////
const PHPServer = require('php-server-manager');
var php = 'php';
// if(os.platform === 'win32' && os.arch === 'ia32'){
//    php = path.resolve(__dirname)+'/php/x86/php.exe';
// }
// if(os.platform === 'win32' && os.arch === 'x64'){
//    php = path.resolve(__dirname)+'/php/x64/php.exe';
// }
const server = new PHPServer({
  php: php,
  directory: path.resolve(__dirname)+'/',
  directives: {
      display_errors: 1,
      expose_php: 0
  }
});
app.on('ready', () => {
  createWindow();
  server.run();
  mainWindow.reload();
  // if (os.platform === 'darwin') {
  // }
});

let mainWindow;

function createWindow () {
  mainWindow = new BrowserWindow({width: 1024, height: 620, });
  mainWindow.center();
  mainWindow.loadURL('http://127.0.0.1:8000/index.php');
  mainWindow.webContents.openDevTools();
  // Emitted when the window is closed.
  mainWindow.on('closed', function () {
    // PHP SERVER QUIT
      server.close();
      mainWindow = null;
    });
  }
  app.on('window-all-closed', function () {
    if (os.platform !== 'darwin') {
      // PHP SERVER QUIT
      server.close();
      app.quit();
    }
  });
  app.on('activate', function () {
    if (mainWindow === null) {
      createWindow();
    }
  });

ОБНОВЛЕНИЕ:

После некоторых исследований я нашел способ загрузить содержимое окнапроблема пустого окна связана с параметром script модуля диспетчера php-сервера.После того, как я указал его на index.php, который является маршрутизатором моего приложения, контент загружен, но теперь у меня есть две ошибки: jquery.min.js:1 Uncaught SyntaxError: Unexpected token < bootstrap.bundle.min.js:1 и bootstrap.bundle.min.js:1 Uncaught SyntaxError: Unexpected token <.Если кто-нибудь сейчас, как это исправить, я буду признателен.

1 Ответ

1 голос
/ 29 марта 2019

Я бы посоветовал попытаться подключить ваш сервер к событию ready-to-show.

mainWindow.on('ready-to-show', () => {
   server.run();
   mainWindow.show()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...