免费体验

微信小程序如何重新授权?
作者:小甜时间:2018-10-19 17:40:50

  相信各位在小程序的开发中, 常常会碰到一个很难解决的坑,那就是用户“授权”问题。当“授权”对话框弹出,却被用户无情拒绝,这就是比较惨了。因为作为小程序的商家用户,想拿到的还是用户的信息,而这些信息必须要经过用户的“授权”同意后才能拿到。那么作为开发商的我们,如何偷偷引导用户“放我们一马”,“授权与我们”就成了一道关键的门槛。

  毕竟,只有能够被小用户认可的小程序才会更好的被大众所接受,而能帮助商户实现这一操作才能让自己的小程序服务更加到位,将来才会有更多的商户和我们合作。废话不多说,下面来分享一下我的秘笈!

  我的这个demo是个人信息+地理位置的双重授权。

  要么授权通过,进入首页

  要么拒绝授权,停留在有授权入口的页面

  需要设置一个标志值:authorizeInfo,根据此值得真假来决定是渲染首页还是渲染显示重新授权的页面。

  在页面显示的时候,获取用户信息与地理位置

  // userInfo

  wx.getUserInfo({

  success:res=>{

  this.setData({userInfo : true})

  },

  fail:res=>{

  this.setData({ userInfo: false })

  }

  })

  // locationInfo

  wx.getLocation({

  success: res => {

  this.setData({ locationInfo: true })

  },

  fail: res => {

  this.setData({ locationInfo: false })

  }

  })

  authorizeInfo的设置就要依靠刚刚获取的这两个值了,设置定时器不断执行authorizeInfo,直到userInfo和locationInfo两个值都为true就把定时器清除(设置定时器是因为刚开始获取userInfo和locationInfo可能会失败),当两者都为真时表示所有授权均已通过,跳转至首页。否则,将会一直停留在授权页。

  //all authorize

  let timer = setInterval(() => {

  this.authorizeInfo();

  if (this.data.userInfo && this.data.locationInfo){

  clearInterval(timer)

  }

  }, 100)

  //authorizeInfo

  authorizeInfo: function(){

  if (this.data.userInfo && this.data.locationInfo) {

  this.setData({ authorizeInfo: true })

  //reLaunch

  wx.reLaunch({

  url: '/pages/index/index'

  })

  }

  else {

  this.setData({ authorizeInfo: false })

  }

  }

  而重新授权这个操作需要调用wx.openSetting这个接口,通过返回值判断,用户再次调用授权操作后是否全部授权,是的话跳转至首页,否则停留在授权页。

  这种引导用户重新“授权”的操作是一项救赎式的姿势。今天的关于解决用户“授权”问题的秘笈就为大家分享到这了,各位拿好不谢。怎么说,作为行业老大哥也得为各位兄弟父老乡亲们透露一下开山道的办法!毕竟是对广大商户有好处的操作,解决这个问题,我们做小程序才更有价值!赶快试试这个方法吧!

免费体验

请输入您的联系方式,方便我们稍后联系

联系手机

验证码

我们会保护您的隐私资料

立即申请
0.2219s