微信小程序开发中遇到的坑
背景交代:以下是我在19年4-7月份开发一款主要在企业微信使用的小程序时遇到的坑,为了确保兼容性和小程序的正常使用,安卓微信端、安卓企业微信端、ios微信端、ios企业微信端都进行了测试,可能部分问题官方已经进行修复和优化了,遇到一些暂时无法解决的问题可以根据自己项目情况灵活的寻找应对方法,大家也可以就自己的问题看官方文档或者在微信小程序的社区进行提问。
当时主要遇到的坑:
- 存放在oss的视频在电脑端和安卓都能正常播放,在ios上不能
(解决方法:使用格式工厂重新给视频编码) - ios手机企业微信转发视频播放页,视频的截图为黑屏,但是在微信端没问题
- 分享时要么就是系统自动截图要么就是自己设置imageUrl
- 分享时使用自己的图片,ios的微信端和企业微信端效果不一样,缩放制度不一样吧,企业微信的跟安卓效果一样
- 修改数据后页面不渲染,一定要使用this.setData才能生效,直接this.data.value = xxx是不生效的
- 设置了z-index不生效,需要再加position:absolute
- 在ios的企业微信里,app.js的launch里面get不到getStorageSync的值,但是放在launch里面的login方法里又是可以get到的
- ios 在企业微信小程序中video视频播放全屏无法横屏问题(官方回应:由于企业微信暂不支持相关的横屏,后续视反馈情况来考虑是否支持上)
- 如果想在video上加东西,又想绑定事件,那别想了,video会置于最上层
- 针对上一问题,可以使用cover-view,但是坑又来了,cover-view,cover-image不能绑定bindtouchstart,catchtouchstart事件
- image使用widthFix会出现图片从一个状态到另外一个状态的切换效果,体验不好
- 小程序里面的background-image不能使用本地图片,只能使用网络图片或者base64的图片,不然真机显示不了;本地图片只能image的src使用
- ios的企业微信里面小程序本地存储的数据会在离开小程序时被清除
- 自定义分享的组件(比如一张图片)是不能绑定小程序自己的分享事件的,只有button标签才能绑定,且是open-type=’share’
- transform不支持rpx
- 组件的data-xxx不能支持驼峰命名,只能用小些字母
- 组件没有onReachBottom以及下拉刷新、onPageScroll的事件
- 样式使用active时,安卓机只能长按出现效果
- 小程序移动端解析border-radius跟视觉效果上的不一样
- 微信里cover-view绑定bindtap事件触发有问题,需要改成catchtap,但是在企业微信没问题
- cover-view的动画在真机上非常卡顿