登录申请试用

小程序资讯
首页 > 小程序资讯

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

日期:2019-10-10
加企维度客服微信号:p1353079991,了解更多资讯!

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


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


起源


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


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


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


申明:本文来自于网络,文章仅代表作者个人观点,不代表企维度立场。如涉及版权等问题请及时与我们联系。