<template>
<view class="content">
<text>{{ title }}</text>
<view @click="chooseLocation" class="field-picker field-picker-address">
+ 选择活动药店地址
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: "Hello",
};
},
onLoad() {},
methods: {
chooseLocation() {
// 首先检查权限
uni.getSetting({
success(res) {
if (!res.authSetting["scope.userLocation"]) {
// 请求权限
uni.authorize({
scope: "scope.userLocation",
success() {
// 权限获取成功后,再调用 chooseLocation
uni.chooseLocation({
success(res) {
console.log('选择位置成功1',res.address);
},
fail(err) {
console.error("选择位置失败1:", err);
},
});
},
fail() {
console.log("用户拒绝授权地理位置");
},
});
} else {
// 已经有权限,直接调用
uni.chooseLocation({
success(res) {
console.log('选择位置成功2',res.address);
},
fail(err) {
console.error("选择位置失败2:", err);
},
});
}
},
});
},
},
};
</script>
<style lang="scss" scoped>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.field-picker {
color: #333333;
font-size: 28rpx;
overflow: hidden;
border: 2rpx solid #ccc;
border-radius: 40rpx;
margin-bottom: 40rpx;
position: relative;
padding: 25rpx 0 25rpx 24rpx;
&-address {
border: 2rpx solid #4285f4;
border-radius: 32rpx;
color: #4285f4;
text-align: center;
padding-left: 4rpx;
}
}
}
</style>
上面是简单的demo
manifest.json相关权限也配置了
隐私协议也更新了
接口权限也申请好了
而且奇怪的点就是 第一次没授权的时候不行 然后刷新页面 或者 真机重新进入小程序就可以了
楼主解决了吗?我也遇见了相同的问题
chooseLocation 接口对应的隐私类型是【收集你选择的位置信息】,你的小程序没有声明哦。
接口/组件对应的隐私类型参考下这个文档:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html