是否有任何事件可以检测到win.reload完成

时间:2019-05-07 04:41:29

标签: javascript electron

我正在使用电子JS来构建应用程序。我想在重新连接后重新加载我的应用程序。重新加载时需要显示加载程序窗口,完成后隐藏。有什么办法吗?

我不想将加载程序放入我的应用程序中。我喜欢将其显示在单独的browser window中。

我希望这样

BrowserWindow.on('reload-complete', (e) => {
  hideLoadingWindow();
})

3 个答案:

答案 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'事件。