前言:
今天,自己做的一个未上线(参加比赛)的一个小程序突然挂了,冒出好多bug,最明显的是生成分享海报,上午可以正常使用,下午竟然加载一分钟的不能生成。/滑稽
经过调试和查看报错后发现,原因是wx.getUserInfo接口不再支持,将无法弹出授权询问框,默认调用失败。
唉,还是应该早点听通知,这也就不至于出bug时一头雾水。
解决方法:
官方提供了两个方法可以获得用户信息:
1. 使用button, 将其open-type设为getUserInfo, 然后可以在可以从bindgetuserinfo回调中获取到用户信息
使用示例:
<button open-type="getUserInfo" bindgetuserinfo="getInfo"></button>
这样,我们就可以在自定义的getInfo函数获得用户信息 (e.detail.userInfo)
在模拟器上,点击按钮后没有任何效果,和普通按钮一样,但真机上,点击按钮会弹出申请授权的弹窗(要谨慎)
2. 使用 open-data 展示用户基本信息
这里要注意: 1. open-data是一个组件
2. 这里的用户信息只能用来展示,并不能获取
由官方示例可以看到,我们通过设置open-data的type可以获得用户的不同信息,具体使用 官方文档。
- 在这里我想说一下open-data组件的样式设置。
因为没有深入使用该组件,所以总结也不尽完整,如有补充,大家可以留言。
1. open-data的样式只能设置一些和颜色,字体有关的,其他样式不会生效。
2. 如想控制组件(如图片大小,边距等其他属性),大家可以尝试在open-data外加一个view,在view上设置样式,等同于在open-data上设置。
总结:
综上
- 我们想展示一些用户信息,如’个人页面‘的用户名,头像时,可以使用open-data;
- 当我们想在一些逻辑函数里操作这些数据时,我们需要在适当时候通过button让用户授权