2017-02-04 6 views
1

Каждый раз, когда окно начинает загружать новый html или делает запрос на сервер, Окно будет белым, пока страница не закончит загрузку, или сервер не ответит на запрос. Это не выглядит хорошо и может быть довольно резким. Как я могу остановить это?Предотвращение белой вспышки между страницами загружает электрон.

код, если вы хотите увидеть его
app.js

const {app, BrowserWindow} = require('electron'); 
const path = require('path'); 
const url = require('url'); 
let win; 
function createWindow() { 
    // Create the browser window. 
    win = new BrowserWindow({width: 800, height: 600}); 
    win.loadURL(url.format({ 
     pathname: path.join(__dirname, 'index.html'), 
     protocol: 'file:', 
     slashes: true 
    })); 

    win.on('closed',() => { 
     win = null; 
}) 
} 
app.on('ready', createWindow); 
app.on('window-all-closed',() => { 

    if (process.platform !== 'darwin') { 
    app.quit(); 
} 
}); 

app.on('activate',() => { 

    if (win === null) { 
    createWindow() 
} 
}); 

inedx.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
</head> 
<body style="background-color: #222222"> 
<a href="index.html" style="color: white">Click on me to see a flash</a> 
</body> 
</html> 

ответ

2

Насколько я видел (как здесь: 4 must-know tips for building cross platform Electron apps) установка цвета фона окно является типичным способом, по крайней мере, смягчить «вспышку». Возможно, вам может показаться, что переход CSS приведет к постепенному исчезновению содержимого окна перед загрузкой, а затем его постепенному исчезновению после загрузки нового контента?

С этого сайта:

2,1 Укажите BrowserWindow цвет фона Если ваше приложение имеет не белый цвет фона, удостоверьтесь, чтобы определить его в ваших вариантов BrowserWindow. Это не помешает квадратному из-однотонные в то время как ваши загрузки приложения, но, по крайней мере, она также не изменит цвет на полпути:

mainWindow = new BrowserWindow({ 
    title: 'ElectronApp', 
    backgroundColor: '#002b36', 
    }; 

2.2 не показывать приложения, пока ваш страница загружена: Потому что мы на самом деле в браузере, мы можем выбрать, чтобы скрыть окна, пока мы не знать все наши ресурсы были загружены в при запуске, убедитесь, что скрыть окно браузера:.

var mainWindow = new BrowserWindow({ 
     title: 'ElectronApp', 
     show: false, 
    }; 

Затем, когда все загружено, покажите окно и сфокусируйте его так, чтобы он всплывал для пользователя. Вы можете сделать это с помощью события «ready-to-show» на вашем BrowserWindow, которое рекомендуется, или на мероприятии 'done-finish-load' на вашем веб-сайте.

mainWindow.on('ready-to-show', function() { 
     mainWindow.show(); 
     mainWindow.focus(); 
    }); 
+0

, к сожалению, это не исправлена ​​проблема цвет фона влияет только на приложение, когда он начинается и другие изменения имеют каких-либо заметных effect.I не может понять, почему электрон делает это, как ни один другой веб-браузер ведет себя таким образом. – Ashlin

+0

Я мог бы просто использовать одностраничное приложение – Ashlin

+0

Я столкнулся с той же проблемой – Jay