官方文档中:
button组件的open-type属性代表这微信开放能力,当我们制定该属性值为getUserInfo 类型,用户允许授权后,可获取用户基本信息。
需要注意的是:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 授权登录 </button>
<view wx:else>请升级微信版本</view>
js代码:
data: {
//判断小程序的API,回调,参数,组件等是否在当前版本可用。
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
onLoad: function () {
// 查看是否授权
wx.getSetting({
success: function (res) {
if (res.authSetting['scope.userInfo']) {
wx.getUserInfo({
success: function (res) {
console.log(res.userInfo)
//用户已经授权过
}
})
}
}
})
},
bindGetUserInfo: function (e) {
console.log(e.detail.userInfo)
if (e.detail.userInfo) {
//用户按了允许授权按钮
} else {
//用户按了拒绝按钮
}
},
还有一点容易被我们忽略的问题:
在小程序中,不允许wx.navigateTo 和wx.redirectTo 跳转到tabbar list的页面,用wx.switchTab 跳转,所以在授权之后要跳转到的页面若为 tabBar中的页面 ,应该用wx.switchTab或wx.reLaunch。