因业务需求需要一个图片视频文件上传功能,需支持主流浏览器及微信钉钉内置浏览器,遂考虑用一个简单的H5页面做上传客户端。视频上传因为要控制视频长度,在其他浏览器中都校验通过,但是在微信中却出了问题

const beforeRead = (file)=> {return new Promise((resolve,reject)=>{if(props.type == 'video'){let url = URL.createObjectURL(file)let audioElement = new Audio(url)audioElement.addEventListener("loadedmetadata", ()=>{let audioDuration = audioElement.duration;if(audioDuration>60){Toast(`仅支持上传1分钟时长以内视频`)reject()}else{resolve(file)}})}else{if (!['image/jpeg','image/png'].includes(file.type)) {Toast('所选文件格式不支持');reject()}else{resolve(file)}}})}

问题原因:IOS微信浏览器需要播放视频才能通过监听loadedmetadata事件获取视频长度,以下是解决办法:

const beforeRead = (file)=> {return new Promise((resolve,reject)=>{if(props.type == 'video'){let url = URL.createObjectURL(file)let audioElement = new Audio(url)audioElement.muted = trueaudioElement.play().then(()=>audioElement.pause())audioElement.addEventListener("loadedmetadata", ()=>{let audioDuration = audioElement.duration;if(audioDuration>60){audioElement.muted = falseToast(`仅支持上传1分钟时长以内视频`)reject()}else{audioElement.muted = falseresolve(file)}})}else{if (!['image/jpeg','image/png'].includes(file.type)) {Toast('所选文件格式不支持');reject()}else{resolve(file)}}})}

H5页面vue3.0+vant,参见upload组件不再赘述!

H5页面在IOS微信webview中无法校验视频文件时长问题相关推荐

  1. H5页面在微信浏览器中自动播放视频

    H5页面在微信浏览器中自动播放视频 安卓和IOS不同 h5在安卓微信浏览器上的视频不能自动播放 h5在iOS微信浏览器上的视频可以自动播放 iOS的实现方案

  2. react native利用webvView嵌入h5页面以及RN与webView的通信

    前言:这边主要是记录下,在react native中如何使用h5页面,以及h5页面发生点击,或者跳转到react native时,如何与react native进行通信. 一.react native ...

  3. 前端如何在H5页面调起微信支付

    在微信服务号开发的时候经常会遇到微信支付的功能实现,通过实际经验自己总结了一下,前端在H5页面调起微信支付有两种办法,一是利用内置对象,二是通过引用微信的js sdk,亲测都能支付成功,从写法上来看用 ...

  4. 移动端h5文字长按复制_移动端开发 H5 页面在 iOS手机上无法实现 长按复制文本 求解决...

    移动端开发 H5 页面在 iOS手机上无法实现 长按复制文本 百度谷歌搜索的答案是 iOS手机系统自带 需要设置禁用 我们需求是要实现此功能 可是我在手机测试 并没有实现长按复制文本 之前这样设置可以 ...

  5. h5页面返回到微信首页

    h5页面返回到微信首页等同于关闭当前打开页面 使用微信内置WeixinJSBridge.call直接关闭 setTimeout(function() {//这个可以关闭安卓系统的手机document. ...

  6. H5页面与ios交互返回上一级

    H5页面与ios交互时,返回上一级不兼容,安卓兼容 实现方法  (需要加return false) <a href="#" onclick="javascript: ...

  7. app内嵌h5页面在ios手机端滑动卡顿的解决方法

    app内嵌h5页面在ios手机端滑动卡顿的解决方法 参考文章: (1)app内嵌h5页面在ios手机端滑动卡顿的解决方法 (2)https://www.cnblogs.com/1rookie/p/11 ...

  8. js禁止苹果页面底部滚动_Vue.js 实现禁止 h5 页面在 ios 浏览器内置的下拉 bounce 效果...

    介绍 vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果. 组件 :style="{'background-col ...

  9. 苹果微信html音乐播放,HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio

    本篇教程探讨了HTML5教程 在iOS微信浏览器中如何自动播放HTML5 audio,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < html> Aut ...

最新文章

  1. Unity上使用Linq To XML
  2. 17、有名管道与无名管道之间的区别
  3. 动态规划生产存储matlab,基于Matlab的动态规划算法的实现及应用
  4. Java基本数据类型的传值
  5. 【CF 600E】Lomsat gelral(树上启发式合并, dsu on tree, 静态链分治,模板题)
  6. Response.Redirect在新窗口打开
  7. jstree取消勾选_zTree 节点勾选取消勾选 选中取消选中
  8. Linux vi命令详解与使用教程
  9. win10默认壁纸_仅4M!微软出品的壁纸软件,让桌面每天都不一样!
  10. 建站选择Linux还是Windows操作系统?
  11. matlab sil验证,科学网—径流模拟结果校准和验证图(matlab) - 张凌的博文
  12. 失落的帝国攻略java,失落的帝国 --- 吴哥旅游日记(8)
  13. 一个普通程序员和他的猫
  14. 硬币面值组合问题(完全背包问题)
  15. NVIDIA NeMo学习笔记
  16. 运算符重载例子分数加减乘除,赋值,输入输出比较大小
  17. 输入的字与系统编码不符_基于小字符集藏文拉丁转写系统的设计与实现
  18. 法雷奥:进军L4市场,带来比航空标准更加安全的自动驾驶车 | CES 2019
  19. java中的Double与double的区别
  20. Kinect v2.0原理介绍之八:高清面部帧(1) FACS 介绍

热门文章

  1. 基于三角剖分的 face swap, 三角剖分,映射贴图
  2. 希腊字母表LaTex公式整理
  3. 50个令人耳目一新的网页纹理设计
  4. 分享到朋友圈没有缩略图?微信自定义标题描述及缩略图最简单完美的办法!
  5. Google 新推计划工具,要当你的私人旅行管家
  6. 全国职业院校技能大赛-网络建设与运维赛题(一)
  7. Systick滴答定时器
  8. 自然语言处理学习笔记(1)——词典分词
  9. P3398 仓鼠找sugar (倍增LCA)
  10. 安卓和ios移动端实现H5页面进行强制刷新