Electron踩坑记录
1. electron通过点击托盘打开无边框透明窗口闪烁问题解决办法
https://blog.csdn.net/weixin_44399906/article/details/109245272
2. electron桌面通知,修改默认通知应用名electron.app.Electron为自己应用的名称
https://www.cnblogs.com/ybixian/p/11045202.html
3. 为什么使用BrowserView而不是iframe?
iframe跟宿主页面共享一个渲染进程,当宿主页面和iframe页面都含有WebRTC功能时,
iframe会跟宿主页面抢占资源,导致两个页面都非常卡,卡到无法使用。
electron 的 BrowserView会独立开辟一个渲染进程,不跟宿主页面抢占资源。
4. BrowserView 的缺点:
无法跟与宿主页面的弹窗统一使用z-index属性定位层级,它总是在最上层。挡住宿主页面的元素。
https://github.com/electron/electron/issues/15899
5. BrowserView 内部页面无法响应点击事件的问题。
在mac系统下,偶现。现在的处理方案是 sleep 20毫秒后,将BrowserView先从window移除,再添加进去。
6. 个别的jpg图片显示自动旋转90的问题 , 相关jira:LIVE-1425
https://github.com/electron/electron/issues/8059
electron使用的chrome版本的问题。
目前我们使用的electron版本是:5.0.8
尝试把electron版本升级到:11.1.1 , 此图片旋转的问题会得到解决。
但会带来更多新的问题:
1. icon-font的图标显示不出来。
2. 声网的sdk不兼容。
7. Windows 环境下将本地图片作为CSS背景,加载失败。
---- 解决方案,将windows下的文件路径中的反斜杠转换为斜杆即可。
p = p.replace(/\\/gm, '/');
8. Windows 环境下,桌面显示放大成125%,BrowserView对象加载失败。
— 主要原因: BrowserView的setBounds函数的width/heigth参数只能是整数。
桌面放大成125%后动态获取的宽高存在小数部分。
— 解决方案:对setBounds函数的参数进行取整处理。Math.floor
9. 客户端登录界面,调用微信二维码登录时,jQuery加载失败。
— 问题原因:微信二维码界面通过script标签引入的jquery库文件,此文件有对module对象进行判断。
在electron客户端中如果启用了nodeIntegration,js运行上下文就会存在module对象。
— 解决方案: 在proload阶段加载的js文件中将window.module对象设置为null即可。
10 . windows 系统下,放大缩小,最大化,最小化动画效果。
transparent:false