针对微信小程序拉起授权并拒绝授权后的再次授权处理
小程序在获取某些用户隐私数据的时候通常需要经过授权,然而有的用户会点击拒绝,针对这种情况需要进行处理下,方便用户下次使用的时候能够正常拉起授权
比如我们如果要获取用户的位置,如果我们直接调用wx.getLocation(),然而用户点击了拒绝,怎么办?此时我们需要在调用wx.getLocation()之前先要去调用一下wx.getSetting(),看看authSetting里面是否有’scope.userLocation’,有的话代表之前拉起过授权,如果值是false代表拒绝授权,需要调用wx.getSetting()接口手动设置授权,如果没有’scope.userLocation’,代表没拉起过授权文章来源地址https://www.toymoban.com/news/detail-624294.html
wx.getSetting({
success(res0) {
console.log('查看是否吊起过授权', res0)
// 查看是否吊起过授权
if (!Object.keys(res0.authSetting).includes('scope.userLocation')) {
wx.getLocation({
type: 'wgs84',
success(res1) {
console.log('吊起过授权---再次获取定位', res1)
that.getAddress(res1)
},
fail() {
console.log('吊起过授权---失败')
that.getAddress({ longitude: '106.713478', latitude: '26.578343' })
}
})
return
}
// 已经吊起过授权并且拒绝授权
if (!res0.authSetting['scope.userLocation']) {
wx.showModal({
title: '您未开启地理位置授权',
content: '为了给您提供更好的服务,请您授权地理位置,谢谢',
success: res2 => {
if (res2.confirm) {
wx.openSetting({
success(res3) {
console.log('吊起过授权---并且拒绝--重新设置授权', res3)
// 成功授权地理位置
if (res3.authSetting['scope.userLocation']) {
wx.getLocation({
type: 'wgs84',
success(res4) {
console.log('重新上设置授权成功---再次获取定位', res4)
that.getAddress(res4)
},
fail() {
console.log('重新授权失败')
that.getAddress({ longitude: '106.713478', latitude: '26.578343' })
}
})
} else {
// 未授权地理位置,默认显示贵阳
console.log('重新授权---未允许,默认显示贵阳')
that.getAddress({ longitude: '106.713478', latitude: '26.578343' })
}
}
})
} else {
console.log('拒绝授权地理位置,默认显示贵阳')
that.getAddress({ longitude: '106.713478', latitude: '26.578343' })
}
}
})
} else {
wx.getLocation({
type: 'wgs84',
success(res) {
console.log('吊起过授权,直接获取位置')
that.getAddress(res)
},
fail() {
console.log('授权失败,默认显示贵阳')
that.getAddress({ longitude: '106.713478', latitude: '26.578343' })
}
})
}
}
})
文章来源:https://www.toymoban.com/news/detail-624294.html
到了这里,关于针对微信小程序拉起授权并拒绝授权后的再次授权处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!