a coder's diaries

0%

微信小程序能力与使用场景探讨

一,功能

1,小程序支持自定义组件,视频直播,模板消息,将web页面用web-view插入小程序,获取用户信息包括手机号…功能很丰富,可查看官方API

2,在小程序内可打开或返回同一公众号下的小程序

3,同一微信开放平台下的不同应用,用户的openid是不一样的,但是unionid是唯一的

4,页面最多有5层,代码包大小2MB

二,兼容

微信客户端的每个版本都携带小程序的稳定版基础库,当用户的基础库不支持小程序功能时,可在微信公众平台设置最低版本,届时提醒用户更新微信。在开发时可用wx.canIUse判断当前基础库是否支持要加功能

三,性能与分析

1,频繁或者大量setData会造成页面卡顿;图片尽量放在服务器上;及时清理没用的代码和资源,缩小代码包。参考文档

2,使用abd工具和微信开发者工具的Trace面板分析小程序性能。参考文档adb安装教程

3,可在微信公众平台自定义分析数据,创建事件和漏斗。经管理员授权后可用小程序数据助手查看分析结果

四,那些年,小程序挖的坑

1,canvas组件是客户端创建的原生组件,层级最高,不能通过z-index控制层级。使用方法与HTML5的canvas有差异。可以使用cover-view覆盖原生组件

2,自定义组件样式失效,解决办法参考文档

3,如果样式或数据或跳转链接不对,尝试下清除缓存

4,iOS或者安卓真机无法获取接口数据,很有可能是SSL证书不受信任

5,小程序input组件使用百分比宽度显示不全,解决办法参考

6,使用tabbar跳转页面不能带参数

7,video组件真机上bindplay失效

8,flex布局需要设置view的宽度

9,视频退出全屏时显示不完整,解决方法是退出全屏时设置视频的宽度为wx.getSystemInfo的windowWidth

10,安卓机视频createVideoContext控制play有时失效,seek会倒退十几秒,不知是bug还是feature

11,onShareAppMessage内不能使用this

12,cover-view即使position为fixed,只会显示原生组件上的内容