电子需要页面重新加载才能显示内容

时间:2017-05-30 10:13:47

标签: javascript node.js django electron

我是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');
    });


};

1 个答案:

答案 0 :(得分:0)

好的 - 事实证明问题与我的django服务器的启动方式有关...它需要几秒钟的时间才能开始,这时Electron试图达到它并没有成功 - 因此白屏。

引入超时计时器后,如下所示:

    setTimeout(function() {
                console.log('waiting ....');
                mainWindow.loadURL(mainAddr);
    },4000);

问题已经过去了#39;等了4秒钟后......