electron使用remote模块时报错

近段时间开发electron套壳应用挺多,顺手记一下这个比较恼人的问题。众所周知remote模块可以用来弹出系统级弹窗提示,有时不想自己写弹窗提示的时候就难免想用,但按照cv大法从其他博客获取的添加方法直接用下面代码添加:

require('electron').remote

那一定会喜提报错,原因即是electron为了保证安全性,给remote模块做出了以下改动:

1.在Electron10中,enableRemoteModule默认值改为了false,若使用remote模块需改为true。

2.remote模块在Electron12废弃,在Electron14被移除,由@electron/remote模块替代。

总之,解决方案很简单,首先使用npm安装@electron/remote模块:

npm install --save @electron/remote

然后首先需要在主进程中初始化@electron/remote模块,才能从渲染器中使用。

require('@electron/remote/main').initialize()

此外,还需要在主进程index.js中对应窗口的webPreferences中添加enableRemoteModule:true,

最后,将渲染进程内的require('electron').remote替换为require('@electron/remote')即可。

以使用对话框为例,需要修改为以下方式:

const { dialog } = require('@electron/remote')                    //?引入remote.dialog 对话框弹出api

完成后即可在渲染进程使用remote模块了。

点赞

发表回复

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像(暂时停用!)

Title - Artist
0:00