当前位置:微信小程序开发 > 小程序资讯 > 小程序开发教程 > 小程序授权登录失败再重新登录

小程序授权登录失败再重新登录

2018-09-07 11:19 来源: 霸界科技

摘要:很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。...

期权保本理财
  很多人在进入小程序之后,会弹出一个窗口,允许授权,很多用户会不经意间关闭拒绝,那么对于小程序开发者来说,需要如何取消这种拒绝授权呢,下面为大家解答。
 
小程序授权登录失败再重新登录
 
  

1、小程序被拒绝授权之后

 
  首先在首页拒绝了授权之后呢,会拉起一个模态弹窗,这点和上边那篇文章中一样的。
 
  app.js中改写一下getUserInfo这个函数
 
  getUserInfo:function(cb){
 
  var that = this
 
  if(this.globalData.userInfo){
 
  typeof cb == "function" && cb(this.globalData.userInfo)
 
  }else{
 
  //调用登录接口
 
  wx.login({
 
  success: function () {
 
  wx.getUserInfo({
 
  success: function (res) {
 
  that.globalData.userInfo = res.userInfo
 
  typeof cb == "function" && cb(that.globalData.userInfo)
 
  },
 
  fail: function(){
 
  wx.showModal({
 
  title: '用户未授权',
 
  content: '如需正常使用小程序功能,请按确定并且在【我的】页面中点击授权按钮,勾选用户信息并点击确定。',
 
  showCancel: false,
 
  success: function (res) {
 
  if (res.confirm) {
 
  console.log('用户点击确定')
 
  }
 
  }
 
  })
 
  }
 
  })
 
  }
 
  })
 
  }
 
  }如果用户拒绝了授权,则会弹出一个框:
 
  

2、引导用户到重新授权按钮

 
  上步中已经提到,需要用户到另一个tab中再点击一个按钮,为什么要这么设置呢。主要是因为单单靠用户点击右上角来设置这个授权有那么一些麻烦,因为需要经以下这些步骤:
 
  用户点击右上角【…】
 
  关于XXX(小程序的名称)
 
  再点击右上角【…】
 
  选择设置
 
  打开用户信息
 
  ……一看到就已经想手动再见了  所以我选择在【我的】这个tab中添加一个用户未授权时才能看到的button,点击了这个神奇的button,就能再次选择是否授权。      先别急着吐槽按钮丑,看码:  我在这个页面中首先加了一个叫做noAuthorized的变量,它的默认值是true,代表【是的,就是没授权咋地了?】
 
  给这个按钮绑定的事件:
 
  tapToAuthorize: function(){
 
  //再授权
 
  wx.openSetting({
 
  success: (res) => {
 
  /*
 
  * res.authSetting = {
 
  *   "scope.userInfo": true,
 
  *   "scope.userLocation": true
 
  * }
 
  */
 
  //因为openSetting会返回用户当前设置,所以通过res.authSetting["scope.userInfo"]来判断用户是否勾选了【用户信息】这一项
 
  if (res.authSetting["scope.userInfo"]===true){
 
  var that = this
 
  app.getUserInfo(function (userInfo) {
 
  //更新数据
 
  that.setData({
 
  userInfo: userInfo,
 
  noAuthorized: false
 
  })
 
  })
 
  }
 
  else{
 
  wx.showModal({
 
  title: '用户未授权',
 
  content: '如需正常使用小程序,请点击授权按钮,勾选用户信息并点击确定。',
 
  showCancel: false,
 
  success: function (res) {
 
  if (res.confirm) {
 
  console.log('用户点击确定')
 
  }
 
  }
 
  })
 
  }
 
  }
 
  })
 
  }如此前提到的文中所说,小程序提供了wx.openSetting(OBJECT)和wx.getSetting(OBJECT),前者可以调起客户端小程序设置界面,返回用户设置的操作结果,后者可以获取用户当前设置。由于此处已经调用了openSetting可以返回操作结果进行判断,所以第二个就用不上了。然后,
 
  点击授权按钮后,先弹出一个框
 
  如果勾选了用户信息并点击了确定,则setdata后页面刷新,按钮消失,显示用户头像昵称等信息。
分享到:
最新评论

网友:

验证码: 点击我更换图片

联系我们

业务咨询:15918761088

招商咨询:15918761088(微信同号)

周一至周五 9:30-18:30

公司地址:广州市海珠区昌岗中路166号富盈国际大厦2505室

官方微信 官方微博

Copyright © 2018 www.keji168.com 广州霸界网络科技有限公司版权所有 粤ICP备18083764号-1

客服
套餐咨询,合作细节等
在线客服
电话咨询
159-1876-1088