onShow() {
this.getAuthorizeInfo();
},
// 位置授权
getAuthorizeInfo() {
let that = this;
uni.authorize({
scope: 'scope.userLocation',
success() { // 允许授权
that.getLocation();
},
fail() { // 拒绝授权
that.openConfirm();
}
})
},
//获取当前位置
getLocation() {
let _this = this
let location = {
lat: 0,
lng: 0,
}
return new Promise((reserve, reject) => { //因为获取位置是异步接口所以需要使用promise
uni.getLocation({
success(res) {
location.lat = res.latitude
location.lng = res.longitude
reserve(location);
},
fail(err) {
reject(location); //获取失败则返回经纬坐标为0
}
})
})
},
// 再次获取授权
// 当用户第一次拒绝后再次请求授权
openConfirm() {
uni.showModal({
title: '请求授权当前位置',
content: '需要获取您的地理位置,请确认授权',
success: (res) => {
if (res.confirm) {
uni.openSetting(); // 打开地图权限设置
} else if (res.cancel) {
uni.showToast({
title: '你拒绝了授权,无法获得周边信息',
icon: 'none',
duration: 1000
})
}
}
});
},