背景
2022年1月,Electron团队发布了Electron的第十七个稳定版本。该版本除了升级Chromium和Node.js的版本以外,还对一小部分重要的API的使用方法做了更新。下面我们将重点看看17版本都有哪些值得关注的更新。
更新内容
核心组件升级
Chromium的版本升级到了98.0.4758.74,Node.js的版本升级到了16.13.0,它们共同使用的V8也升级到了9.8版本。
重要的API变更
使用Web技术开发过桌面共享相关功能的同学应该对desktopCapturer.getSources API不陌生。该API可以获取当前计算机的桌面视频媒体源,进而可以通过getUserMedia来获取该源输出的图像或视频流。
在17版本之前,desktopCapturer.getSources可以既可以在主进程被调用,也可以在渲染进程中调用。在渲染进程中允许使用该API其实是有安全隐患的。这个隐患可能会被恶意的网站利用而导致桌面信息泄漏。
基于安全的考虑,Electron 17版本中禁止了在渲染进程中调用该方法,只能在主进程进行调用。
重要的新特性
支持WebHID
WebHID可以让Electron支持除鼠标、键盘、触控板等常规的人机交互输入设备之外的其它人机交互设备,如PS游戏机的手柄、模拟方向盘等等。
新增 webContents.getMediaSourceId API
该接口能让开发者直接获取某个渲染进程的媒体源ID,进而通过getUserMedia来获取对应的媒体流。
移除的API
获取打印设备的同步方法webContents.getPrinters被异步方法webContents.getPrintersAsync替代。