收藏
回答

uni.chooseLocation 第一次打开失败 必须要重新进入小程序才可以成功 怎么解决?

<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相关权限也配置了

隐私协议也更新了


接口权限也申请好了







而且奇怪的点就是 第一次没授权的时候不行 然后刷新页面 或者 真机重新进入小程序就可以了

回答关注问题邀请回答
收藏

1 个回答

  • Hlxuan.
    Hlxuan.
    04-24

    chooseLocation 接口对应的隐私类型是【收集你选择的位置信息】,你的小程序没有声明哦。

    04-24
    有用
    回复 7
    查看更多(2)
登录 后发表内容