Electron 常见问题收录II

2022-07-25 15:51:28 浏览数 (1)

前言

针对上篇 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('../')

0 人点赞