uni-app IOS下video和waterfall组件的bug

uni-app IOS下video和waterfall组件的bug

开发环境 版本号 项目创建方式
Windows win10 1909 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:Alpha

HBuilderX版本号:3.98

手机系统:iOS

手机系统版本号:iOS 16

手机厂商:苹果

手机机型:13pro

页面类型:nvue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

### 示例代码:

```html
<video  :src="data.video_url" :poster="data.video_image"  [@play](/user/play)="playstatus"></video>  
<waterfall  :pagingEnabled="true" [@loadmore](/user/loadmore)="getdata"  :loadmoreoffset="50">
<cell v-for="(item,index) in videolist" :key="index" :data-index="index" [@appear](/user/appear)="onAppear" [@disappear](/user/disappear)="onDisappear">
<view class="zhanwei" :style="{'width': '750rpx','height': windowBoxHeight+'px'}">
<view style="position: absolute;left: 30rpx;top: 80px;width: 80rpx;height: 80rpx;background-color: aqua;">
<text style="text-align: center;width: 80rpx;line-height: 80rpx;font-size: 26rpx;color: black;">{{index}}</text>
</view>
</view>
</cell>
</waterfall>

操作步骤:

复现步骤

预期结果:

预期结果

实际结果:

实际结果

bug描述:

BUG1 video: @play钩子为当视频播放时执行,我的应用场景为当视频开始播放时,检测用户操作判断是否暂停此视频,安卓正常,苹果不正常(总是在播放之前就触发,导致无法使用uni.createVideoContext(‘video’, this).pause()进行暂停)

BUG2 waterfall组件 waterfall的cell有 :data-index=“index” @appear=“onAppear” @disappear="onDisappear"两个钩子,第一个为回调当前显示cell,第二个为关闭的cell 安卓上两个钩子都能通过event.currentTarget.attr.dataIndex获取到正常的index值 苹果上不正常:

  1. 上滑时,disappear返回正常,appear返回的数值为实际数值-1

  2. 下滑时,appear返回正常,disappear返回数据有时候为实际数值的正负纠正1或者2 以上不正常返回数值,我通过在cell中渲染{{index}}值对比得出


更多关于uni-app IOS下video和waterfall组件的bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app IOS下video和waterfall组件的bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 开发中,iOS 平台下 video 组件和 waterfall 组件可能会遇到一些特定的 bug 或兼容性问题。以下是一些常见的问题及其可能的解决方法:


1. video 组件在 iOS 下的常见问题

问题描述:

  • 视频播放时无法全屏。
  • 视频播放时出现黑屏或卡顿。
  • 视频播放器 controls 控件显示异常。
  • 视频播放完成后无法重新播放。

解决方法:

  1. 全屏问题
    • 确保 video 组件的 controls 属性设置为 true
    • 使用 x5-video-player-fullscreen 属性(针对微信小程序):
      <video controls x5-video-player-fullscreen="true"></video>
回到顶部