前言
针对上篇 Electron 使用过程中遇到的问题进行补充。
运行时遇到的问题
问题1:Windows 32 系统运行 报错, 提示需要 32 位的 trtc_electron_sdk.node
解决方案
进入到工程目录下的trtc-electron-sdk库目录下(xxx/node_modules/trtc-electron-sdk)。
执行
npm run install -- arch=ia32
下载完 32 位的 trtc_electron_sdk.node后,重新对项目进行打包
问题2:electron 12 版本上下文隔离默认启用, 导致 dlopen 加载 .node 文件失败
https://www.electronjs.org/docs/all#默认更改:-上下文隔离-默认为-true
可设置 contextIsolation 为 false
代码语言:javascript复制let win = new BrowserWindow({
width: 1366,
height: 1024,
minWidth: 800,
minHeight: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
},
});
问题3: vscode terminal 启动 electron demo, 进入房间后白屏
vscode 需有摄像头权限, 参考如下链接进行权限添加。
https://github.com/microsoft/vscode/issues/95062
问题4:electron schema 唤起 app, 无法加载 .node 文件
electron打包成功后,安装程序,用的自定义 nsh协议 写进注册表,方便网页协议唤起程序。正常的启动程序,鼠标双击的方式,程序运行正常。 如果本地没有启动程序,直接网页唤醒就会报错
The specified module could not be found. resourcestrtc_electron_sdk.node
解决方案
客户采用的是 schema 唤起 app 出现的问题, process.cwd() 的目录是一个 c:/systme/win32(, 不是 app 当前安装目录。可以在 schema 吊起 app 逻辑里, 针对 windows 平台添加如下代码逻辑。
代码语言:javascript复制process.chdir(process.resourcesPath)
process.chdir('../')