当我使用window在呈现过程中最大化remote.getCurrentWindow().maximize()时,由于我使用ipcRenderer向window发送一条消息到主进程,因此window.maximize() max的动画不流畅。

它在MacOS 10.14.4和 Electron 版4.1.4上。

document.getElementById('maxrender').addEventListener('click', () => {
  // the animation is not smooth
  if (currentWindow.isMaximized()) {
    currentWindow.unmaximize();
  } else {
      currentWindow.maximize();
  }
})
document.getElementById('maxmain').addEventListener('click', () => {
  // the app will receive this message and call the same function
  // the animation is smooth
  ipc.send('window-max')
})

单击“窗口最大”和“ipc最大”,动画的平滑度是完全不同的

最佳答案

我在 Electron 社区上创建了一个#17858问题。

简而言之,remote调用是synchronous,它将阻止一些ms的渲染过程。因此,动画与asynchronous ipcRenderer进行消息传递时不一样。

10-08 06:29