开发小程序必然会涉及到授权问题,怎么才能精准的获取用户权限呢?毕竟如果被人点击了拒绝授权我们就收集不到数据了,对于开发一个小程序无法拿到客户授权也是非常苦恼的。微信小程序被拒绝授权之后应该怎么办呢?微信小程序怎么重新授权呢?小编就为大家解决一下这个难题,相信遇到这个难题的大有人在,就试试我这个解决方法吧!绝对有惊喜哦!
在做小程序时授权问题是少不了的,可有时候总有人会点击拒绝授权,那我们开发拿不到需要的数据是不是很苦恼呢?我在自己正在做的小程序里使用了一种方法,现在分享出来~~
我的这个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这个接口,通过返回值判断,用户再次调用授权操作后是否全部授权,是的话跳转至首页,否则停留在授权页。
关于用户授权的解决方法就为大家分享到这里了,如果你在开发小程序的时候,也会遇见这个问题,就试试这个解决方法吧!毕竟能获得用户的授权,同时也证明了用户对这个小程序的认可和需要,这样也才能体现我们制作小程序的意义,也才能证明我们所有的努力没有白费!
- 适合两个人玩的微信小游戏 情侣可以玩的小游戏[18-09-04]
- 为什么微信小程序打不开?原来是这么回事[18-08-18]
- 适合两个人玩的微信小游戏,玩起来叫人欲罢不能[18-09-10]