1,由于公司需要,现在需要做一个小程序,在授权登录的地方遇到很操蛋的问题!
注:4月30日之前已经正式发布的小程序,还是可以按照用户登录时,弹出需要授权的弹窗,用户点击授权后才能使用。
但4月30日后,只要是准备更新升级的小程序,都需要改接口。改成用户无需直接授权也能使用该小程序,但是用户主动触发某些企业引导的设置时,才会需授权使用。(所以要主动引导用户授权)
问题解决:之所以授权弹框没有弹出来,是代码有问题,并且微信官方也有调整
下面直接上代码(由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发,并且button里必须要加open-type="getUserInfo"才能弹出授权窗口)
wxml:
view wx:if="{{canIUse}}" view class='header' image src='../image/login.png'/image /view view class='content' view申请获取以下权限/view text获得你的公开信息(昵称,头像等)/text /view button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo" 授权登录!--由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发,并且button里必须要加open-type="getUserInfo"才能弹出授权窗口-- /button/view view wx:else请升级微信版本/viewjs:
const app = getApp();Page({ data: { //判断小程序的API,回调,参数,组件等是否在当前版本可用。 canIUse: wx.canIUse('button.open-type.getUserInfo') }, onLoad: function() { var that = this; // 查看是否授权 wx.getSetting({ success: function(res) { if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: function(res) { //用户已经授权过 wx.redirectTo({ url: '../index/index' }) } }); } } }) }, bindGetUserInfo: function(e) { if (e.detail.userInfo) { //用户按了允许授权按钮后需要处理的逻辑方法体 //var that = this; } else { //用户按了拒绝按钮 wx.showModal({ title: '警告', content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!', showCancel: false, confirmText: '返回授权', success: function(res) { if (res.confirm) { console.log('用户点击了“返回授权”') } } }) } },})效果如图:哈哈本人菜鸟,多多指教













