我是Electron的新用户,我的目标是在其中运行Django应用。 Django应用程序已使用PyInstaller编译并正确放置在我的电子项目结构中。
我的问题是,当我启动电子(electron .
)时,它的空白窗口会打开。我需要点击刷新以显示正确的内容。我不能让这个工作,以便重新加载页面以在电子开放期间显示内容。我尝试了reload()
和reloadIgnoringCache()
选项,但它没有帮助......
分析我的窗口webContents
参数我可以看到我的窗口最初得到currentIndex: -1
并且在手动重新加载currentIndex: 0
后(不确定这是否相关......)。
以下是我的main.js
文件的相关部分:
app.on('ready', function() {
log.info('App is ready?!....');
var openWindow = function(mainAddr){
mainWindow = new BrowserWindow({width: 1200, height: 800, backgroundColor: '#eeeeee', show:false});
mainWindow.loadURL(mainAddr);
mainWindow.webContents.on('did-finish-load', function() {
mainWindow.show();
});
mainWindow.webContents.session.clearCache(function() {
console.log("Cache has been cleared.");
});
mainWindow.webContents.reloadIgnoringCache();
mainWindow.webContents.openDevTools();
mainWindow.on('closed', function() {
mainWindow = null;
subpy.kill('SIGINT');
});
};
答案 0 :(得分:0)
好的 - 事实证明问题与我的django服务器的启动方式有关...它需要几秒钟的时间才能开始,这时Electron试图达到它并没有成功 - 因此白屏。
引入超时计时器后,如下所示:
setTimeout(function() {
console.log('waiting ....');
mainWindow.loadURL(mainAddr);
},4000);
问题已经过去了#39;等了4秒钟后......