前面,我们提到每个BrowserWindow加载页面后都会是一个独立的渲染进程,那如何处理多窗口的每一个渲染进程的js呢,以及说多窗口的每个BrowserWindow应该如何去写会好些。这里可能不是最好的设计,可供参考。
在设计多窗口的东西之前,我们需要知道我们可能有哪些需求:

  • 每个窗口可能会有窗口需要的数据信息需要缓存,如何缓存。
  • 可能会需要获取当前激活窗口、激活窗口id、聚焦窗口、聚焦窗口id, 当前有多少个窗口。
  • 窗口之间可能会互相通信、可能会与主进程通信。
  • 可以打开不同类型的窗口加载不同内容、可能打开同类型窗口加载不同类容。
  • 可能同时会想打开几个窗口,可能是打开单个窗口。
  • 单个窗口的属性可能不一样
  • 单个窗口一些生命周期可能一样
  • 有可能从主进程打开或操作窗口、有可能从渲染进程打开或操作窗口
  • 每个窗口有自己的菜单栏、menubar、touchbar?
  • 每个窗口有自己不同的右键菜单需求?

总结一下为:

  • 单个窗口具有共同的一些属性、一些生命周期监听;具有一些不同的属性、不同的生命周期监听。(右键菜单、menu、touchbar、快捷键?、对话框样式)
  • 单个窗口或有不同的通信需求:向主进程通信、向其余窗口通信。
  • 单个窗口或有持久化的缓存,或非持久化缓存。
  • 对当前窗口的管理需求:多少窗口、聚焦窗口、激活窗口、获得某个窗口、打开某种类型窗口。
  • 对不同的窗口有不同的操作需求。

阅读剩下更多

默认配图