6.electron之上下文隔离,预加载JS脚本

如果可以实现记得点赞分享,谢谢老铁~

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和

Node.js 嵌入到了一个二进制文件中,因此它允许你仅需一个代码仓库,就可以撰写支持 Windows、macOS 和 Linux

的跨平台应用。

1.项目效果, 我的目的是通过在渲染线程自定义事件,然后在主线程中监听。

2.在渲染线程中,如果直接导入,会报错... "require is not defined" 这是因为官方为了安全性,将 electron v12.0.0 的 contextIsolation 的默认值改了。

index.tsx

powershell 复制代码
const {ipcRenderer} = require("electron");
  1. 所以不能直接在index.tsx 里面直接导入。而是需要在主进程里进行配置
js 复制代码
const {
    app,
    BrowserWindow,
    dialog,
    ipcMain,
} = require("electron");
const path = require("path");

mainWindow = new BrowserWindow({
        width: 1200,
        height: 700,
        minWidth: 1200, // 设置窗口的最小宽度
        minHeight: 700, // 设置窗口的最小高度
        icon: __dirname + "/favicon.ico",
        webPreferences: {
            preload: path.join(__dirname, "preload.js"),
            nodeIntegration: true,
            // 关闭上下文隔离
            contextIsolation: false,
        }
    });

PS:上述代码中 将 contextIsolation: false ,关闭上下文隔离。 然后在public 下创建一个preload.js 脚本,进行预加载处理。

4.我们看看preload.js 脚本

js 复制代码
window.ipcRenderer = require('electron').ipcRenderer;

哈哈哈哈,没错就只有一句代码,将模块赋值给全局window即可。

想要看具体实现,看下下一篇文章讲解《7.electron之渲染线程发送事件,主进程监听事件》

5.运行以下命令来构建React项目:

powershell 复制代码
npm run build
```**

6.运行以下命令来启动Electron应用程序:

```powershell
npm run electron:dev

这将启动Electron应用程序,并加载React应用程序的构建文件。

7.运行以下命令来打包Electron应用程序:

powershell 复制代码
npm run electron:build

收工!谢谢老铁们的点赞收藏~

相关推荐
寒季6668 小时前
Electron 实战:构建跨平台桌面端 Markdown 编辑器(含实时预览、文件操作、快捷键)
华为·electron·harmonyos
Jiangnan_Cai2 天前
【Electron】Windows 下打包遇到 dist/unpacked 文件内 electron.exe 文件缺失问题
前端·javascript·electron
自不量力的A同学2 天前
Electron 40.0.0 发布,跨平台桌面应用开发工具
前端·javascript·electron
michael_ouyang2 天前
WebSocket 鉴权方案选型与 Electron 应用的最佳实践
前端·websocket·网络协议·electron
写bug的可宋5 天前
【Electron】解决Electron使用阿里iconfont不生效问题(react+vite)
javascript·react.js·electron
凉介Nova7 天前
Electron 应用体积从 190MB+ 到 90MB:一次「release 目录反推」的瘦身实战(electron-builder + Vite)
electron
winfredzhang7 天前
零基础打造轻量级桌面备忘录:Electron 核心技术实战
前端·javascript·electron·备忘录
放逐者-保持本心,方可放逐7 天前
electron 中的那些事(很关键)-核心要点补充
前端·javascript·electron
每日出拳老爷子8 天前
【客户端方案】Electron / 原生客户端在内网会议中的取舍与坑点
服务器·electron·远程工作·流媒体·视音频
南山老沙8 天前
VUE 项目通过electron-builder打包成桌面应用
electron·vue