Electron踩坑日记-2

Electron踩坑日记-2

Electron + vue项目渲染进程如何与逻辑进程交互?

假设有这样一个需求,在页面上有一个A按钮,我现在需要点击A,然后执行某段nodejs的代码.
我们知道,在浏览器环境下是无法执行nodejs代码的,因此我们需要调用到electron给予的能力.下文,我将演示如何编写相关代码.

在main.js设置

function createWindow() { const win = new BrowserWindow({ transparent: true, frame: false, titleBarStyle: "hidden", ......其他设置 webPreferences: { nodeIntegration: true, // 允许在渲染进程中使用 Node.js contextIsolation: false, devTools: false, // 禁用开发者工具 extensions: false, // 如果有这个选项,可以设置为 false 禁用扩展 }, }); }

可以看到,我将 nodeIntegration: true, 允许在渲染进程中使用 Node.js将 contextIsolation: false,允许上下文,只有先这样设置,vue项目才可以使用electron渲染进程和逻辑进程的通信的能力

然后我们只需要在main.js中注册相关的函数例如

ipcMain.handle("get-user-data-path", async () => { return app.getPath("userData"); });

那么我们该怎么在vue项目中调用到呢
很简单

const { ipcRenderer } = window.require("electron"); //引入ipcRenderer const deleteFile = async (type, file) => { const userDataPath = await ipcRenderer.invoke ("get-user-data-path"); //触发main.js中编写的函数 };

这样,就实现了vue文件和electron的通信,只需要在

ipcMain.handle("get-user-data-path", async () => { return app.getPath("userData"); });

这个函数中进一步引入执行nodejs的xxx.js文件.然后调用他即可实现了


__EOF__

本文作者Mr丶Kr's blog
本文链接https://www.cnblogs.com/mrkr/p/18392594.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Mr、Kr  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示