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

 

posted on 2021-01-07 14:35  袜子破了  阅读(1702)  评论(0编辑  收藏  举报