收藏
回答

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

隐私协议也更新了


接口权限也申请好了







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

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

2 个回答

  • --
    --
    2024-09-20

    楼主解决了吗?我也遇见了相同的问题

    2024-09-20
    有用
    回复
  • Hlxuan.
    Hlxuan.
    2024-04-24

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

    2024-04-24
    有用
    回复 7
    • Latias
      Latias
      2024-04-24
      2024-04-24
      回复
    • Latias
      Latias
      2024-04-24
      请问一下我申请的这两个和你的不是一样的吗 还是我有什么没有注意到的呢
      2024-04-24
      回复
    • Hlxuan.
      Hlxuan.
      2024-04-24回复Latias
      不是。(请问一下我申请的这两个和你的不是一样的吗 )
      接口/组件对应的隐私类型参考下这个文档:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html
      2024-04-24
      回复
    • Latias
      Latias
      2024-04-24
      理解了 突然就看到了 我赶紧重新补上试试
      2024-04-24
      回复
    • Latias
      Latias
      2024-04-24
      感谢
      2024-04-24
      回复
    查看更多(2)
登录 后发表内容