微信小程序开发的时候,很多接口都不太能信任,需要作一些额外的兜底处理。保证程序在什么情况下都能尽可能健康的运行。 也要有一套健全的异常收集反馈机制,方便迅速发现问题解决问题。 小程序生态的异常监控体系,主要包含小程序后台的代码运行报错,小程序告警群的使用,具体用户的信息收集上报,代码逻辑中可能的预警上报统计,微信新版本的内测跟进等方面。

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. 微信小程序填坑 视频篇

    写了一年小程序,每天接受数万付费用户的考验,踩过小程序的坑数不胜数.先写一下视频篇,写一些会影响到用户正常看视频功能和影响业务主体流程的坑. 1.一些低端设备无法播放高清视频 1080p 需要接入转码 ...

  2. 微信小程序填坑之路(六):wx.getUserInfo 接口的变动与使用

    问题 在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息.然而为了安全考虑,从2018年4月30号开始,wx.getUser ...

  3. 微信小程序填坑之路其一:wx.request发送与服务端接受

    一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端--小程序:服务端--java:数据库--mysql:服务器--centos7 需求:客户端输入 ...

  4. 微信小程序填坑之路(三):布局适配方案(rpx、px、vw、vh)

    因为小程序是以微信为平台运行的,可以同时运行在android与ios的设备上,所以不可避免的会遇到布局适配问题,特别是在iphone5上,因为屏幕尺寸小的缘故,也是适配问题最多的机型,下面就简单介绍几 ...

  5. Java小程序post如何传参,[Java教程]微信小程序填坑之路其一:wx.request发送与服务端接受...

    为了有一个接口地址,花了一个月时间去买了服务器.注册了域名.部署了一下.备案-得到了https的合法域名. 首先这个请求的url必须是https,老版本的怎样不是很清楚,据说可以用http?想办法弄一 ...

  6. 微信小程序填坑:上传头像;wx.chooseImage,wx.uploadFile

    因为wx.chooseImage,wx.uploadFile的组合十分常见,并且极其容易遇到坑:请作者来检查一下是否有问题,因为我看到原文底下有一堆不明代码... 上传头像, 使用wx.chooseI ...

  7. 微信小程序填坑之路(一):text空格符号以及省略号

    1.text的空格符 首先需要设置<text> 控件的decode值 decode可以解析的有  < > & '     值 说明 ensp 中文字符空格一半大小 em ...

  8. 微信小程序填坑之路(三)--上传头像

    上传头像, 使用wx.chooseImage({})后 在使用wx.uploadFile({})结合起来使用. 示例代码: Page({data: {src: "../../image/ph ...

  9. 微信小程序填坑之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 ...

最新文章

  1. SAP Netweaver 7.4 SR2 Application Java Installation
  2. Form_Form与OAF页面互相调用(案例)
  3. 增强.net开发的5个非常有用的Visual Studio 2012扩展
  4. aix6.1安装oracle 10g总结
  5. 巧妙使用网页在线工具,让您的工作更简单
  6. 纯真IP地址数据库qqwry.dat解析
  7. 《POSIX多线程程序设计》读书笔记
  8. modelandview为null的原因_如何在Java代码中去掉烦人的“!=null”
  9. cmscore服务地址_cms core服务器
  10. Flink表转流一例+何时应该使用execute()
  11. Java中的基本数据类型转换(自动、强制、提升)
  12. Day02-变量_数据类型和运算符
  13. SpringBoot 小技巧
  14. “5G 时代,手机或被淘汰”
  15. pacs文件浏览工具_啥?网络攻击浏览器让你惊惶失措?这里教你防患未然
  16. java异常中的finally(一)
  17. 老李分享:持续集成学好jenkins之解答疑问
  18. Python学习笔记 03 Python对象
  19. office插件开发_进一步拓展wps办公软件的功能——安装vba开发环境插件
  20. 移动端车牌识别sdk-手机拍照识别车牌技术

热门文章

  1. Android 使用iperf测试wifi吞吐量
  2. JAVAEE1910 day04学习总结
  3. Waterfox 水狐浏览器汉化方法
  4. PCB布局布线经验总结2021年2月5日
  5. Python下的Logistic回归模型
  6. Vnpy服务器当前无响应,vnpy安装的坑记录
  7. 万向肖风:区块链和数字货币就是新一代数字金融体系(全文)
  8. java unicode 转换_java中unicode和中文相互转换的简单实现
  9. Linux命令之切换用户su
  10. 黑盒测试和白盒测试的概念和区别你知道吗?