我正在使用电子JS来构建应用程序。我想在重新连接后重新加载我的应用程序。重新加载时需要显示加载程序窗口,完成后隐藏。有什么办法吗?
我不想将加载程序放入我的应用程序中。我喜欢将其显示在单独的browser window中。
我希望这样
BrowserWindow.on('reload-complete', (e) => {
hideLoadingWindow();
})
答案 0 :(得分:1)
您可以使用show方法,然后使用“ dom-ready”来检测您的应用加载情况,
let loading= new BrowserWindow({show: false, frame: false})
loading.once('show', () => {
main = new BrowserWindow({show: false})
main.webContents.once('dom-ready', () => {
console.log('main loaded')
main.show()
loading.hide()
loading.close()
})
// load your app
main.loadURL(url);
})
答案 1 :(得分:0)
最后,我找到了另一种方法来克服这种情况。我不确定这是否是一个好的解决方案。但是对我来说看起来很简单。
var mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: false,
preload: path.join(app.getAppPath(), 'preload.js')
},
minWidth: 1018,
width: 640,
minHeight: 1018,
height: 640,
title: 'Electron app',
show: false
});
createLoadingWindow();
mainWindow.once('ready-to-show', () => {
mainWindow.show();
});
mainWindow.webContents.on('did-start-loading', (e) => {
createLoadingWindow();
});
mainWindow.webContents.on('did-stop-loading', (e) => {
closeLoadingWindow();
});
答案 2 :(得分:0)
以下活动适合您:
BrowserWindow.webContents.once('did-finish-load', (e) => {
//hideLoadingWindow();
})
页面重新加载后将触发'did-finish-load'
事件。