程序员每天都会遇到各种各样的问题,但是基本上不管遇到什么问题都能够迎刃而解。因为,他们有一颗无所畏惧的心,是他们赋予了小程序的灵魂,但是微信小程序怎么重新授权呢?今天我们就来为大家解决一下这个问题。
微信小程序怎么重新授权?
起源
· 去做一些小程序时,授权问题也绝对不能少,但我们发现有时总有人会点击我们的拒绝授权,那大家在开发拿不到需要的数据就是会非常的烦恼?我在自己正在做的小程序中应用了这样一种办法,目前分享出来~。
· 我的这个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这个接口,我们知道通过返回值判断,用户再次调用授权操作后是否全部授权,如果要是的话跳转至首页,否则停留在授权页。
//toAuthorize
toAuthorize:function(){
//重新调起授权
wx.openSetting({
success: (res) => {
if (res.authSetting["scope.userInfo"] && res.authSetting["scope.userLocation"]) {
this.setData({ authorizeInfo: true })
//reLaunch
wx.reLaunch({
url: '/pages/index/index'
})
}else{
this.setData({ authorizeInfo: false })
}
},
fail: (res) => {
console.log("授权失败")
}
})
使用方法
· 我的这个demo是个人信息加地理位置的双重授权
· pages下的authorize文件夹是能够拿来直接用的 复制粘贴到你的pages下就好了!
通过以上介绍,现在你知道微信小程序怎么重新授权了吧。其实方法还是比较简单的,多调试一下,基本上不管你遇到什么问题都能够解决。当然,如果你在操作过程当中遇到任何的问题,都可以随时关注我们,我们会为您解决这一困扰。
- 适合两个人玩的微信小游戏 情侣可以玩的小游戏[18-09-04]
- 为什么微信小程序打不开?原来是这么回事[18-08-18]
- 适合两个人玩的微信小游戏,玩起来叫人欲罢不能[18-09-10]