2017-02-04 73 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, 
    }; 

然後,當一切都加載完畢後,顯示窗口並將其聚焦,以便爲用戶彈出 。您可以通過BrowserWindow(推薦)或 'did-finish-load'事件在您的webContents上的「準備好展示」事件 來實現。

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

不幸的是這並沒有固定的問題,當它開始和其他的變化都沒有明顯的effect.I不明白爲什麼電子做到這一點,因爲沒有其他Web瀏覽器這樣的行爲與背景顏色隻影響應用程序。 – Ashlin

+0

我可能只需使用單個頁面應用程序 – Ashlin

+0

我面臨同樣的問題 – Jay