攻城狮已经疯了
攻城狮已经疯了
  • 发布:2021-01-12 11:20
  • 更新:2021-01-12 20:09
  • 阅读:1181

【报Bug】nvue开发,video组件全屏后,红米K30手机用dom.getComponentRect获取到的屏幕宽度是错误的

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.0.5

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 红米K30

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
  1. 调用 videoContext.requestFullScreen() 进入全屏
  2. 使用 dom.getComponentRect() 获取video大小
  3. 根据video的大小,动态改变视频播放控件

预期结果:

返回正确的dom信息

实际结果:

返回了错误的dom信息

bug描述:

  1. 第一个是video“非全屏”下,用dom.getComponentRect()获取到的信息,这时候没有问题;
  2. 第二个是video“全屏”下,用dom.getComponentRect()获取到的信息,这时候返回的 width=911px。因为将安全区域全部取消了,所以这时候video铺满了整个屏幕,播放控件都是自己根据屏幕宽度算的,但是问题来了,自己写的播放进度条的宽度就多了一截到容器外;
  3. 最下面有个小图,是通过uni.getSystemInfo()得到的数据,再跟用dom模块得到的数据一比较,前提是uni是正确的,那么dom明显返回的911px大了不少 (这些你们都可以自己用K30输出试试的,目前我们就发现这个机型有问题)
2021-01-12 11:20 负责人:无 分享
已邀请:
DCloud_UNI_Anne

DCloud_UNI_Anne

  • 攻城狮已经疯了 (作者)

    不好意思,现已经补充了video底部的界面代码,和演示视频。js就不用弄上来了,很简单的获取dom信息,然后计算赋值,视频上这个问题目前我们只发现在“红米K30 5G”上出现,其它的全面屏手机未出现。

    2021-01-13 14:48

  • 攻城狮已经疯了 (作者)

    获取dom数据就跟我放出来那个草稿图,全屏后的 911px 这个值不对劲。

    2021-01-13 14:50

  • 攻城狮已经疯了 (作者)

    你好,把几种一起汇总了一下,已经上传demo代码,公司测试机有限,这个问题目前只有“红米K30”是有问题的。

    2021-01-18 17:36

  • DCloud_UNI_Anne

    回复 攻城狮已经疯了: 用hello uni-app视频示例,是否存在圆点超出问题?

    2021-01-19 17:41

  • 攻城狮已经疯了 (作者)

    回复 DCloud_UNI_Anne: 官方示例不存在问题。但是示例的video是用的默认控制组件,我们这个是自己写的,全屏后又必须获取屏幕宽度。因为nvue不能用百分比%……

    2021-01-19 17:45

  • 攻城狮已经疯了 (作者)

    回复 DCloud_UNI_Anne: 还有,我们也只是在K30这个手机上遇到,其它机型是正确的耶。

    2021-01-19 17:48

该问题目前已经被锁定, 无法添加新回复