小程序判断是否授权位置信息和手动授权
文章目录
- 概要
- 微信小程序的,使用的是高德地图
概要
当用户来到页面之后就会弹出是否授权弹框,但是如果第一次关闭之后,下一次再过来的话页面的授权弹框就不出现了,针对于这种情况写了一个方法
微信小程序的,使用的是高德地图
getLocationPodel() {
let that = this
wx.getSetting({
success: (res) => {
if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化进入该页面,且未授权
wx.showModal({
title: '是否授权当前位置',
content: '需要获取您的地理位置,请确认授权,否则无法获取您所需数据',
success: function (res) {
if (res.cancel) {
} else if (res.confirm) {
wx.openSetting({
success: function (dataAu) {
if (dataAu.authSetting["scope.userLocation"] == true) {
wx.showToast({
title: '授权成功',
icon: 'success',
duration: 1000
})
//再次授权,调用getLocationt的API
that.getLocation1();
} else {
wx.showToast({
title: '授权失败',
icon: 'success',
duration: 1000
})
}
}
})
}
}
})
} else if (res.authSetting['scope.userLocation'] == undefined) {//初始化进入
that.getLocation1();
}
else { //授权后默认加载
that.getLocation1();
}
}
})
},
getLocation1() {
let that = this
uni.getLocation({
type: 'wgs84',
success: function (res) {
that.getLocation(res.latitude,res.longitude)
},
fail:function(res) {
console.log('dfvdfvdfv')
}
});
},
getLocation(latitude,longitude) {
let that = this
//根据经纬度获取城市信息
wx.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1',
data: {
key:'自己的key值,
location:`${latitude},${longitude}`
},
success: (res) => {
let address = res.data.result.address_component
that.city = address.city
that.province = address.province
},
fail: () => {},
complete: () => {}
});
},