小程序开发

小程序开发

小程序开发 | 微信小程序怎么重新授权 具体的代码怎么写

发布日期:2021-04-27  点击量:24

程序员每天都会遇到各种各样的问题,但是基本上不管遇到什么问题都能够迎刃而解。因为,他们有一颗无所畏惧的心,是他们赋予了小程序的灵魂,但是微信小程序怎么重新授权呢?今天我们就来为大家解决一下这个问题。

微信小程序怎么重新授权?

起源

· 去做一些小程序时,授权问题也绝对不能少,但我们发现有时总有人会点击我们的拒绝授权,那大家在开发拿不到需要的数据就是会非常的烦恼?我在自己正在做的小程序中应用了这样一种办法,目前分享出来~。

· 我的这个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下就好了!

通过以上介绍,现在你知道微信小程序怎么重新授权了吧。其实方法还是比较简单的,多调试一下,基本上不管你遇到什么问题都能够解决。当然,如果你在操作过程当中遇到任何的问题,都可以随时关注我们,我们会为您解决这一困扰。

请填写您的需求信息,我们会在30分钟内与您取得联系。

同行勿扰,谢谢合作!~