contextBridge
进程: Renderer
如下,是一个从隔离的预加载脚本将 API 暴露给渲染器的示例:
“Main World”是主渲染器代码运行的 JavaScript 上下文。 默认情况下,你在渲染器中加载的页面在此环境中执行代码。
Isolated World
contextBridge
模块有以下方法:
apiKey
String - 将 API 注入到窗口
的键。 API 将可通过window[apiKey]
访问。
应用开发接口(API)
提供给 的 api
必须是一个 Function
, , Number
, Array
, Boolean
;或一个键为字符串,值为一个 Function
, String
, Number
, Array
, Boolean
的对象;或其他符合相同条件的嵌套对象。
Function
类型的值被代理到其他上下文中,所有其他类型的值都会被 复制 并 冻结。 在 API 中发送的任何数据 /原始数据将不可改变,在桥接器其中一侧的更新不会导致另一侧的更新。
你通过 contextBridge
绑定的 Function
值会被 Electron 代理,以确保保持上下文隔离。 这导致了我们在下面概述的一些键的限制。
参数 / 错误 / 返回类型支持
因为当参数、错误和返回值在桥接器上发送时会被 复制 ,所以只有某些类型可以使用。 从上层来看,如果你想要使用的类型可以序列化并反序列化为同一个对象,这个类型可以使用。 为确保完整性,下面列出了一份类型支持表:
如果您关心的类型不在上表中,可能是因为不支持该类型。