Error: contextBridge API can only be used when contextIsolation is enabled

news/2024/5/19 16:24:43

electron项目中preload.js文件使用下面的方法时报错

const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronApi', {});

在这里插入图片描述

node:electron/js2c/renderer_init:2 Unable to load preload script: D:\Vue\wnpm\electron\preload.js
(匿名) @ node:electron/js2c/renderer_init:2
node:electron/js2c/renderer_init:2 Error: contextBridge API can only be used when contextIsolation is enabledat checkContextIsolationEnabled (node:electron/js2c/renderer_init:2:5071)at Object.exposeInMainWorld (node:electron/js2c/renderer_init:2:5182)at Object.<anonymous> (D:\Vue\wnpm\electron\preload.js:3:15)at Object.<anonymous> (D:\Vue\wnpm\electron\preload.js:35:3)at Module._compile (node:internal/modules/cjs/loader:1391:14)at Module._extensions..js (node:internal/modules/cjs/loader:1451:10)at Module.load (node:internal/modules/cjs/loader:1214:32)at Module._load (node:internal/modules/cjs/loader:1030:12)at c._load (node:electron/js2c/node_init:2:13672)at s._load (node:electron/js2c/renderer_init:2:31018)

这个错误提示表明,在启用了上下文隔离(contextIsolation)的情况下,才能使用 contextBridge API。上下文隔离是 Electron 中一种安全机制,用于保护渲染进程免受主进程的恶意代码的影响。

通过 contextBridge.exposeInMainWorld 方法,你可以在渲染进程中暴露指定的 Electron API,以便在渲染进程中安全地访问。然而,如果未启用上下文隔离,或者启用了上下文隔离但未正确配置,就会出现报错。

要解决这个问题,你需要确保在创建 BrowserWindow 实例时启用了上下文隔离,并且正确配置了 preload 脚本。在创建 BrowserWindow 实例时,需要将 contextIsolation 设置为 true,并将 preload 脚本指定为要注入到渲染进程中的预加载脚本。

示例代码如下:

const { BrowserWindow } = require('electron');// 创建 BrowserWindow 实例时,启用上下文隔离,并指定 preload 脚本
const mainWindow = new BrowserWindow({webPreferences: {contextIsolation: true,//注意这个关键配置preload: path.join(__dirname, 'preload.js')}
});

确保按照以上步骤正确配置了 BrowserWindow 实例后,再次尝试使用 contextBridge.exposeInMainWorld 方法来暴露 Electron API,应该就不会再出现报错了。


http://www.mrgr.cn/p/24816062

相关文章

【刚度矩阵推导】2d frame 单元

2d frame 单元刚度矩阵推导2d frame 单元是x-y平面上的单元,每个节点上有2个平移自由度的和一个转动自由度.局部坐标系下,单元位移向量为: \( u=[ u_1 ,u_2 ,u_3, u_4, u_5, u_6]^{T} \) 其局部坐标系下的刚度矩阵可以由2d truss单元和2d bornoulli-beam单元的刚度矩阵组合而成…

毕业设计注意事项(2024届更新中)

1.开题 根据学院发的开题报告模板完成&#xff0c;其中大纲部分可参考资料 2.毕设 根据资料中的毕设评价标准&#xff0c;对照工作量 3.论文 3.1 格式问题 非常重要&#xff0c;认真对比资料中我发的模板&#xff0c;格式有问题&#xff0c;答辩输一半&#xff01; 以word…

平衡二叉树、红黑树、B树、B+树

Tree 1、前言2、平衡二叉树和红黑树3、B树和B树3.1、B树的构建3.2、B树和B树的区别3.3、数据的存储方式 1、前言 本文侧重在理论方面对平衡二叉树、红黑树、B树和B树的各方面性能进行比较。不涉及编程方面的实现。而关于于平衡二叉树在C中的实现&#xff0c;我的上一篇文章平衡…

探索 去中心化的Web3.0

随着区块链技术的日益成熟和普及&#xff0c;Web3&#xff08;Web 3.0&#xff09;已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念&#xff0c;更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中&#xff0c;我们将深入探讨Web3技术的核心…

百面算法工程师 | 分类和聚类

目录 6.1 为什么正确率有时不能有效评估分类算法&#xff1f; 6.2 什么样的分类器最好&#xff1f; 6.3 什么是聚类&#xff0c;你知道哪些聚类算法&#xff1f; 6.4 K-Means聚类算法如何调优? 6.5 K-Means聚类算法如何选择初始点? 6.6 K-Means聚类聚的是特征还是样本 …

Python爱心代码

爱心效果图&#xff1a; 完整代码&#xff1a; import random from math import sin, cos, pi, log from tkinter import *# 定义画布尺寸和颜色 CANVAS_WIDTH 640 CANVAS_HEIGHT 480 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARG…

爬虫2(页面解析和数据提取)

爬虫2(页面解析和数据提取)处理HTML文件,常用Xpath,先将HTML文件转换成XML文档,然后用Xpath查找HTML节点或元素。 一、HTML与XML二、XPath1、XPath路径表达式三、Lxml库html = etree.HTML(text) # 将字符串转换成HTML格式# print(etree.tostring(html)) # 补全HTMLresul…

平芯微PW7014中文规格书

产品概述PW7014 具有前端过电压和过温保护功能。 支持 3V 到 36V 的宽输入电压工作范围。 过压保护阈值可以外部设置 4V~22V 或采用内部默认 6.1V 设置。 超快的过压保护响应速度能够确保后级电路的安全。 集成了超低导通阻抗的 nFET 开关, 确保电路系统应用更好的性能。 它可…

hp惠普插入耳机右下角提示检测到音频设备 取消提醒弹窗

前言全局说明系统 Windows 11一、插入耳机屏幕右下角提示二、关闭提示 1.点击提示框 “个性化我的音频” 按钮2. 点“取消”,取消测试3. 去掉 "当检测到新的受支持设备时通知我" 前面的勾(如下图)再插耳机时候就不会有右下角提示了免责声明:本号所涉及内容仅供安…

使用PlantUML绘制活动图、泳道图

最近在学PlantUML 太漂亮了 给大家欣赏一下 我也记录一下 startuml |使用前| start :用户打开旅游App; |#LightSkyBlue|使用后| :用户浏览旅游信息; |#AntiqueWhite|登机前| :用户办理登机手续; :系统生成登机牌; |使用前| :用户到达机场; |登机前| :用户通过安检; |#Light…

Hadoop3:HDFS、YARN、MapReduce三部分的架构概述及三者间关系(Hadoop入门必须记住的内容)

一、HDFS架构概述 Hadoop Distributed File System&#xff0c;简称HDFS&#xff0c;是一个分布式文件系统。 1&#xff09;NameNode(nn)&#xff1a;存储文件的元数据&#xff0c;如文件名&#xff0c;文件目录结构&#xff0c;文件属性&#xff08;生成时间、副本数、文件…

Chartist.js折线图(三)

事件替换图形代码如下<!DOCTYPE html> <html><head><link rel="stylesheet" href="./chartist.min.css"><script src="./chartist.min.js"></script></head><body><div class="ct-char…

Linux给文件内容每行指定字符数据脱敏替换

需求:文件内容中有一批手机号,现在需要对手机号的第4-8位进行数据脱敏处理,我们可以用 sed 命令来截取字符替换操作sed s/./*/4 tel.txt | sed s/./*/5 | sed s/./*/6 | sed s/./*/7 | sed s/./*/8

Web3钱包开发获取测试币-Polygon Mumbai(一)

Web3钱包开发获取测试币-Polygon Mumbai(一) 由于主网区块链上的智能合约需要真正的代币&#xff0c;而部署和使用需要花费真金白银&#xff0c;因此测试网络为 Web3 开发人员提供了一个测试环境&#xff0c;用于部署和测试他们的智能合约&#xff0c;以识别和修复在将智能合约…

powershell@命令行提示符样式配置自定义@pwsh重写prompt显示电量内存时间等信息

文章目录 abstract流行的powershell prompt模块示例 powershell原生修改Prompt函数配置文档Prompt命令来自哪里 简单修改带上电量和时间的Prompt 复杂修改预览FAQ:没有必要修改相关仓库地址样式选择平衡样式花哨样式响应性能 小结 abstract 在 PowerShell 中&#xff0c;可以通…

nginx高性能负载均衡集群

高性能负载均衡集群 一、集群是什么简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 这些服务器之间可以彼此通信,协同向用户提供应用程序,系统…

机器学习day1

一、人工智能三大概念 人工智能三大概念 人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09; 人工智能&#xff1a;人工智能是研究计算代理的合成和分析的领域。人工智能是使用计算机来模拟&#xff0c;而不是人类…

动态内存管理 柔性数组

文章目录 动态内存函数 malloc freecallocrealloc 重新开辟空间realloc 也可以第一个参数为NULL&#xff0c;则是直接开辟内存&#xff0c;类似于malloc用法 常见的动态内存错误对空指针进行解引用操作对开辟的内存越界访问对非动态开辟的内存使用free释放使用free释放动态开辟…

ABS10-ASEMI开关电源整流桥ABS10

ABS10-ASEMI开关电源整流桥ABS10编辑:ll ABS10-ASEMI开关电源整流桥ABS10 型号:ABS10 品牌:ASEMI 封装:ABS-4 正向电流(Id):1A 反向耐压(VRRM):1000V 正向浪涌电流:30A 正向电压(VF):1.10V 引脚数量:4 芯片个数:4 芯片尺寸:50MIL 功率(Pd):小功率设备 工作温…

揭露 FileSystem 引起的线上 JVM 内存溢出问题

本文主要介绍了由FileSystem类引起的一次线上内存泄漏导致内存溢出的问题分析解决全过程。作者:来自 vivo 互联网大数据团队-Ye Jidong本文主要介绍了由FileSystem类引起的一次线上内存泄漏导致内存溢出的问题分析解决全过程。内存泄漏定义(memory leak):一个不再被程序使用…