免费体验

微信小程序怎么重新授权,一个程序代码就为你解决了难题
作者:乐枫时间:2018-09-11 17:02:45

开发小程序必然会涉及到授权问题,怎么才能精准的获取用户权限呢?毕竟如果被人点击了拒绝授权我们就收集不到数据了,对于开发一个小程序无法拿到客户授权也是非常苦恼的。微信小程序被拒绝授权之后应该怎么办呢?微信小程序怎么重新授权呢?小编就为大家解决一下这个难题,相信遇到这个难题的大有人在,就试试我这个解决方法吧!绝对有惊喜哦!

在做小程序时授权问题是少不了的,可有时候总有人会点击拒绝授权,那我们开发拿不到需要的数据是不是很苦恼呢?我在自己正在做的小程序里使用了一种方法,现在分享出来~~

我的这个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.2484s