微信小程序填坑篇 2
微信小程序开发的时候,很多接口都不太能信任,需要作一些额外的兜底处理。保证程序在什么情况下都能尽可能健康的运行。 也要有一套健全的异常收集反馈机制,方便迅速发现问题解决问题。 小程序生态的异常监控体系,主要包含小程序后台的代码运行报错,小程序告警群的使用,具体用户的信息收集上报,代码逻辑中可能的预警上报统计,微信新版本的内测跟进等方面。
1.css支持。
在ios12上 css3的支持不够好。有时候动画animation的forward无效。现象是动画结束后突然回到初始状态。
极少数ios机型会出现animation-delay失效的情况。
不同组件之间的animation-name如果一致的话会被覆盖,整个小程序中需要确保没有重复的animation-name。
2.横竖屏问题
rpx单位计算错误问题,比如从竖屏页面进入横屏页面,再返回竖屏页面,页面元素可能变得特别大,超出屏幕。 横竖屏切换时小程序内部的rpx单位计算错误,解决办法是不使用微信小程序的rpx单位,使用vh,vw单位。横屏页面一般使用vh,竖屏页面一般使用vw。如果小程序已经使用rpx开发完了,可用node脚本替换单位。
早期的微信版本不支持横屏。
3.canvas问题
触摸事件失效。在canvas和canvas外层绑定touchend事件。业务逻辑中作事件的去重处理。
canvas上画的线条层级比正常元素高,如果正常元素要显示在上层,可以用cover-view放在canvas上层。但是cover-view的pointer-events:none;不生效,事件无法穿透到canvas上。可以在cover-view上层使用一个与canvas同样大小的cover-view来承接事件并作坐标转换处理。
4.音频支持。
播放音频不完整。锤子手机百分百出现。小米手机小概率出现。 可能使用mp3格式音频会好一些。
获取音频播放进度的接口不准确,一个是更新频率不一定能满足,二个是有时候播放结束之后进度会突然跳到不正确的位置。对于做单词高亮效果等效果影响比较大。解决方案是不用原生的接口获取播放进度,而是使用定时器自己获取从播放开始的时间到当前时间的时间差,从onPlay事件触发的时候开始计时,到onEned事件时结束。需要小程序音频提前下载好再播放,否则拿到的也不准了,如果暂停了或被打断了,就重新播放。
onEnd事件不执行。解决办法在播放结束需要执行回调的情况,需要设置一个最大的预期播放时间 (如果能拿到duration就用duration加一点点),超过了这个时间无论它有没有执行onEnded事件,都执行一下回调。保证回调能执行到。注意控制回调只执行一次。
5.ios音频问题。
微信7.0.5 对下载好的音频的临时地址无法播放。
微信7.0.12 出现音频0.5倍速播放的情况。 与代码中onPlay之前的定时器有关系。
6.录音支持。
有时候设备首次调起录音时间很长,可能超过30s。 本地模拟的话在网特别差的情况能重现出来。 解决办法是进入小程序之后先调起一次录音。 真正要调用录音的时候就会比较快了。
部分机型调起录音失败,会报一些录音机内部的错误,需要重启手机。
录音分片接口onFrameRecorded不稳定。
有时候最后一帧isLastFrame会返回false。可结合定时器和stop接口作一些兜底处理,保证相关回调一定能执行。
7.小程序自带tab组件可能导致黑屏。
可自己实现tab组件。
8.网络接口有时候不太稳定。可增加重试机制。
9.华为平板问题。
微信小程序对华为平板的兼容不是很理想,多个微信版本上华为平板上出现了横屏显示问题。7.0.13,7.0.14,7.0.18等。可以通过引导用户修改机器的一些设置来解决。
华为平板进小程序的时候,如果设备处理横放状态,可能无法进入小程序。需要竖屏进入。
10.部分机型7.0.9之后的版本容易出现闪退。
主要是vivo x7 x6,x5,以及部分小米低端机型。可以考虑安装旧版本微信。
11.黑白屏、闪退问题。
可以尝试清下微信缓存。关闭后台程序。重启设备等方案。
12.接口获取到的数据不准确问题
小概率微信接口拿到的设备型号不对,比如部分ipad机型识别不出来是ipad,可以用屏幕长宽比来加强判断。确保ipad适配生效。
获取右侧胶囊位置不正确的情况。可能需要一些校正。
github地址 : 微信小程序填坑篇 2 https://github.com/liusaint/ls-blog/issues/42
微信小程序填坑篇 2相关推荐
- 微信小程序填坑 视频篇
写了一年小程序,每天接受数万付费用户的考验,踩过小程序的坑数不胜数.先写一下视频篇,写一些会影响到用户正常看视频功能和影响业务主体流程的坑. 1.一些低端设备无法播放高清视频 1080p 需要接入转码 ...
- 微信小程序填坑之路(六):wx.getUserInfo 接口的变动与使用
问题 在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息.然而为了安全考虑,从2018年4月30号开始,wx.getUser ...
- 微信小程序填坑之路其一:wx.request发送与服务端接受
一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端--小程序:服务端--java:数据库--mysql:服务器--centos7 需求:客户端输入 ...
- 微信小程序填坑之路(三):布局适配方案(rpx、px、vw、vh)
因为小程序是以微信为平台运行的,可以同时运行在android与ios的设备上,所以不可避免的会遇到布局适配问题,特别是在iphone5上,因为屏幕尺寸小的缘故,也是适配问题最多的机型,下面就简单介绍几 ...
- Java小程序post如何传参,[Java教程]微信小程序填坑之路其一:wx.request发送与服务端接受...
为了有一个接口地址,花了一个月时间去买了服务器.注册了域名.部署了一下.备案-得到了https的合法域名. 首先这个请求的url必须是https,老版本的怎样不是很清楚,据说可以用http?想办法弄一 ...
- 微信小程序填坑:上传头像;wx.chooseImage,wx.uploadFile
因为wx.chooseImage,wx.uploadFile的组合十分常见,并且极其容易遇到坑:请作者来检查一下是否有问题,因为我看到原文底下有一堆不明代码... 上传头像, 使用wx.chooseI ...
- 微信小程序填坑之路(一):text空格符号以及省略号
1.text的空格符 首先需要设置<text> 控件的decode值 decode可以解析的有 < > & ' 值 说明 ensp 中文字符空格一半大小 em ...
- 微信小程序填坑之路(三)--上传头像
上传头像, 使用wx.chooseImage({})后 在使用wx.uploadFile({})结合起来使用. 示例代码: Page({data: {src: "../../image/ph ...
- 微信小程序填坑之page[pages/XXX/XXX] not found.May be caused by
当页面出现 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add page route in app.json.2. I ...
最新文章
- SAP Netweaver 7.4 SR2 Application Java Installation
- Form_Form与OAF页面互相调用(案例)
- 增强.net开发的5个非常有用的Visual Studio 2012扩展
- aix6.1安装oracle 10g总结
- 巧妙使用网页在线工具,让您的工作更简单
- 纯真IP地址数据库qqwry.dat解析
- 《POSIX多线程程序设计》读书笔记
- modelandview为null的原因_如何在Java代码中去掉烦人的“!=null”
- cmscore服务地址_cms core服务器
- Flink表转流一例+何时应该使用execute()
- Java中的基本数据类型转换(自动、强制、提升)
- Day02-变量_数据类型和运算符
- SpringBoot 小技巧
- “5G 时代,手机或被淘汰”
- pacs文件浏览工具_啥?网络攻击浏览器让你惊惶失措?这里教你防患未然
- java异常中的finally(一)
- 老李分享:持续集成学好jenkins之解答疑问
- Python学习笔记 03 Python对象
- office插件开发_进一步拓展wps办公软件的功能——安装vba开发环境插件
- 移动端车牌识别sdk-手机拍照识别车牌技术