flashFrame:电子应用上的false不起作用

时间:2018-01-16 15:21:11

标签: javascript html windows electron desktop-application

我试图让我的Electron应用程序在最小化时不闪动帧,因为所有时候它都被最小化,它会闪烁帧,有时候,如果我没有焦点在其他程序中,它会重新打开自动。 我只是想让它停止闪现框架。

这种情况一直发生: Flash frame on Flash frame off

这是我的main.js文件:

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    show: false,
    titleBarStyle: 'hidden',
    flashFrame: false                        //I TRIED THIS
  })
  mainWindow.flashFrame(false)               //I TRIED THIS
  splash = new BrowserWindow({
    width: 800,
    frame: false,
    height: 600
  })
  splash.loadURL(`file://${__dirname}/splash.html`);
  mainWindow.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
  }))

  var myVar = setInterval(dentroyWindows, 3000)
  function dentroyWindows() {
    splash.destroy()
    mainWindow.show()
  }

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

app.on('ready', createWindow)

app.on('activate', function () {
  if (mainWindow === null) {
    createWindow()
  }
})

app.on('browser-window-created', function (e, window) {
  window.setMenu(null);
  window.flashFrame(false);                  //I TRIED THIS
});

1 个答案:

答案 0 :(得分:0)

首先,flashFrame不是电子API中的选项,因此它不会执行任何操作:

mainWindow = new BrowserWindow({
  ...
  flashFrame: false
})
  

因为所有时间都被最小化,它会闪烁帧,有时候,如果我没有焦点在其他程序中,它会自动重新打开。

这不是正常行为。只有在调用show()focus()restore()或您的应用通过其他方式获得焦点时,才会闪烁任务栏。如果没有重现此行为的存储库,任何人都很难就修复提出建议。