流程:
1、首先使用 uni.getSetting,获取是否开启定位权限,
2、如果没有开启,先使用 uni.authorize 开启,
3、开启成功,调用 uni.getLocation 获取当前定位
4、如果授权过,直接调用 uni.getLocation 获取当前定位。
// 获取当前定位
getLocation() {
const that = this;
uni.getSetting({
success: (res) => {
console.log(res);
// 查看是否有定位权限
if (!res.authSetting["scope.userLocation"]) {
// 授权获取定位权限
uni.authorize({
scope: "scope.userLocation",
success() {
that.getLatLon();
},
// 拒绝授权
fail: () => {
that.showModal = true;
},
});
} else {
that.getLatLon();
}
},
});
},
// 获取当前位置
getLatLon() {
uni.getLocation({
type: "wgs84",
success: (res) => {
console.log("当前位置的纬度:" + res.latitude);
console.log("当前位置的经度:" + res.longitude);
// 更新数据中的位置信息
this.latitude = res.latitude;
this.longitude = res.longitude;
},
fail: (err) => {
console.error("获取位置失败:", err);
},
});
},