小程序最初的设计是真正想要用户信息的情况下去才获取信息,开发者并没有按照小程序的期望去做,导致用户在试用的时候产生一下问题:
- 开发者在首页直接调用wx.getUserInfo进行授权
- 开发者没有处理用户拒绝弹框的情况
- 有部分开发小程序强制要求用户授权头像昵称等信息才能继续使用小程序
- 开发者默认将wx.login和wx.getUserInfo绑定试用,这个是有小程序
为了提升用户体检,小程序2018.4.30开始升级,开发版调用该接口,将无法弹出授权询问框,默认调用失败,真是版本暂不受影响
并提出方案:
<button open-type=“getUserInfo” bindgetUserInfo=”userInfoHandle”>获取用户信息</button>
button组建:由于用户主动触发,不受弹框次数限制,只要用户没有授权,都会再次弹框
wx.getUserInfo 的withCredentials参数
withCredentials:true (可以获取到明文信息和加密信息,必须要求用户已经登陆,也就是调用过wx.login,并且状态没有失效)
加密信息包括:用户信息+openId+unionId
withCredentials:false(不需要用户登陆,但无法获取用户加密信息)
推荐试用方法:
- 首先试用wx.getSetting获取用户的授权情况
- 如果用户已经授权,直接调用API wx.getUserInfo获取用户最新的信息
- 用户未授权,并且按钮提示用户授权,当用户点击并且授权后就获取到用户的细腻
- 如果已经授权了,隐藏按钮,之后获取信息调用API,因为已经授权,所以不会推荐使用的方案:
打开小程序就谈款授权用户信息
未处理用户拒绝授权的情况
生成的码永久有效
接口A:(getWXAcode)
接口B:(getWXACodeUnlimit)
接口C:(createWXAQRCode)
A和C:参数path里,长度128字节限制10000个
推送位置:服务通知
公众号:可以主动推荐,小程序:必须有交互行为
- 收集formId
- 登陆后台获取模版ID
- 调用接口sendTemplateMessage发信息
条件限制:有交互行为后的7天,1次支付发3条,1条提交表单
微信的限制随时会有调整
- 小程序源码打包后的大小限制为2M
- 窗口的地步最少2个最多5个
- 小程序的原型界面层级限制,不超过10层
- 地图定位每天只能使用1万次
- 流量主开通的累计独立方可uv不低于1000
access_token过期问题
通过getAccessToken接口回去,是全局接口调用凭据
各自去刷新,否则容易冲突,导致access_token覆盖而影响业务
有效期为2小时,需定时刷新,重复获取将导致上次获取的access_token失效,每天只能生成2000次
解决方案:发现功能异常时,刷新access_token并更新redis,然后在你调用接口
方案2:生情歌测试小程序,测试环境测试的appid,和线上分开
低版本兼容:
小程序的功能不断增加,解决方案
- 设置-基本设置-基础库最版本设置-选择一个版本
- 使用if判断API是否存在
- wx.canUse
canUse: wx.canUse(‘view’)
<view wx:if=”{{canUse}}>play</view>