contextBridge
是 Electron 框架中用于在渲染器进程(通常是 Web 页面)和主进程之间安全地暴露 API 的一种方式。它允许开发者在保持主进程和渲染器进程之间清晰分离的同时,从主进程向渲染器进程安全地传递方法和属性。这是通过创建一个单向的、只能从主进程到渲染器进程的桥接来实现的,从而避免了渲染器进程直接访问 Node.js 的 API,这有助于防止潜在的安全问题。
如何使用 contextBridge
-
在主进程中设置
contextBridge
:在主进程的脚本中(例如
main.js
或index.js
),你会使用ipcMain
模块来监听来自渲染器进程的消息,并处理这些消息。然而,直接暴露 Node.js 的 API 到渲染器进程是不安全的。相反,你可以使用contextBridge
来安全地暴露一个 API。但是,需要注意的是,contextBridge
实际上是在渲染器进程的preload
脚本中设置的。 -
在
preload
脚本中设置contextBridge
:preload
脚本是 Electron 中的一个特殊脚本,它在渲染器进程加载之前运行,并且允许你控制哪些 Node.js 的功能应该被渲染器进程访问。在这个脚本中,你可以使用contextBridge.exposeInMainWorld
方法来暴露一个对象到渲染器进程